运维日志排序
2025华为OD机试双机位C卷 - 华为OD上机考试双机位C卷 100分题型
华为OD机试双机位C卷真题目录点击查看: 【全网首发】2025华为OD机位C卷 机考真题题库含考点说明以及在线OJ(OD上机考试双机位C卷)
题目描述
[运维工程师]采集到某产品线网运行一天产生的日志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表示日志条数,1<=n<=100000,接下来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
说明
说明 两个时间表示的时间相同,保持输入顺序
解题思路
解题思路分析
题目本质
这道题实质上是一个日志时间排序问题,核心在于如何正确解析不标准格式的时间字符串,并按时间顺序排序。
-
时间统一化处理
- 将各种格式的时间字符串转换为统一的数值单位(如毫秒总数)
- 这样可以直接通过数值比较来确定时间的先后顺序
-
解析时间字符串
- 使用正则表达式或字符串分割方法解析时间字符串
- 提取出小时、分钟、秒、毫秒四个部分
- 注意处理没有前导零的情况(如"1:1:1.1")
-
时间转换算法
- 将时间转换为统一单位:毫秒总数
- 计算公式:
(((小时 * 60) + 分钟) * 60 + 秒) * 1000 + 毫秒
- <

订阅专栏 解锁全文
982

被折叠的 条评论
为什么被折叠?



