网站建设对公司来说重要吗,做手机网站一般要多少钱,英文网站建设电话,网站建设保报价文档题目描述#xff1a; 运维工程师采集到某产品线网运行一天产生的日志n条#xff0c;现需根据日志时间先后顺序对日志进行排序#xff0c;日志时间格式为H:M:S.N。 H表示小时(0~23) M表示分钟(0~59) S表示秒(0~59) N表示毫秒(0~999) 时间可能并没有补全#xff0c;也就是说 运维工程师采集到某产品线网运行一天产生的日志n条现需根据日志时间先后顺序对日志进行排序日志时间格式为H:M:S.N。 H表示小时(0~23) M表示分钟(0~59) S表示秒(0~59) N表示毫秒(0~999) 时间可能并没有补全也就是说01:01:01.001也可能表示为1:1:1.1。   
输入描述 第一行输入一个整数n表示日志条数1n100000接下来n行输入n个时间。 
输出描述 按时间升序排序之后的时间如果有两个时间表示的时间相同则保持输入顺序。 
示例 
1.输入 
2
01:41:8.9
1:1:09.211 
输出 
1:1:09.211
01:41:8.9 
2.输入 
3
23:41:08.023
1:1:09.211
08:01:22.0 
输出 
1:1:09.211
08:01:22.0
23:41:08.023 
3.输入 
2
22:41:08.023
22:41:08.23 
输出 
22:41:08.023
22:41:08.23 
思路将输入的时间缺的0补上然后使用map存储原日期和格式化后的日期再对其进行排序 
代码 
#includebits/stdc.h
using namespace std;
string s[100000  5];bool cmp(const pairstring, string a, pairstring, stringb) {return a.second  b.second;
}int main() {mapstring, stringm;int n;cin  n;for (int i  1; i  n; i) {cin  s[i];string xs  s[i];s[i]  .;int time  0;string ss;string sum;for (int j  0; j  s[i].size(); j) {if (s[i][j] ! :  s[i][j] ! .) {ss  s[i][j];continue;}if (time  0) {for (int x  0; x  2 - ss.length(); x) {sum  0;}sum  ss  :;}if (time  1) {for (int x  0; x  2 - ss.length(); x) {sum  0;}sum  ss  :;}if (time  2) {for (int x  0; x  2 - ss.length(); x) {sum  0;}sum  ss  :;}if (time  3) {for (int x  0; x  3 - ss.length(); x) {sum  0;}sum  ss;}time;ss.clear();}m[xs]  sum;}vectorpairstring, stringv(m.begin(), m.end());sort(v.begin(), v.end(), cmp);mapstring, string::iterator it;for (int i  0; i  v.size(); i) {cout  v[i].first  endl;}return 0;
}