日志标准化排序(log)
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
给定 行日志,每行恰好包含 5 个用空格分隔的字段,格式为:
date=YYYY-M-D time=H:M:S user=xxx action=yyy params=k1=v1&k2=v2&...
其中:
- 年保证为四位数
- 月/日/时/分/秒没有前导零(例如
2026-3-1、9:2:5) user可能含大小写字母与数字(无空格)action只含小写字母params由若干key=value用&连接,可能为空(即params=后面没有内容);不会存在重复的键;键值对顺序可能是乱的
任务是把每行日志标准化后,再按规则排序并输出。
标准化规则
将每条日志转换为如下格式:
no. YYYY-MM-DD HH:MM:SS user action params
-
no.为排序后的日志序号;需添加前导零使所有序号位数相同(例如共 200 条时第 1 条序号为001.,共 5 条时序号为1.) -
date、time的月/日/时/分/秒均补齐两位(年保持四位不变) -
user全部转成小写,数字不变 -
params中所有key=value按 key 的字典序升序排列后用&连接;若params为空则该字段为空串
排序规则
对标准化后的日志按以下键升序排序:
- 时间戳
YYYY-MM-DD HH:MM:SS useractionparams(整个字符串)
输入格式
第一行输入一个整数 。
接下来 行,每行一条日志。
输出格式
输出 行,为标准化并排序后的日志。
样例输入
4
date=2026-3-1 time=9:2:5 user=Alice action=login params=b=2&a=1
date=2026-3-1 time=9:2:4 user=bob action=refund params=
date=2026-3-1 time=9:2:5 user=alice action=logout params=z=9
date=2026-3-1 time=9:2:5 user=alice action=login params=a=1
样例输出
1. 2026-03-01 09:02:04 bob refund
2. 2026-03-01 09:02:05 alice login a=1
3. 2026-03-01 09:02:05 alice login a=1&b=2
4. 2026-03-01 09:02:05 alice logout z=9
数据范围
| 数据点编号 | 数据范围 | 特殊性质 |
|---|---|---|
| 1 | 单条日志,params 为空 | |
| 2 | 所有 params 均为空 | |
| 3 | user 均已为纯小写,无需转换 | |
| 4 | 所有日志时间戳完全相同 | |
| 5 | 每条 params 至多含一个键值对 | |
| 6 | 月/日/时/分/秒均需补零 | |
| 7 | 无特殊性质 | |
| 8 | 每条 params 键值对数量较多 | |
| 9 | 无特殊性质 | |
| 10 |
2026年常州"信息与未来"小学生编程思维展示活动-线上初赛
- 状态
- 已结束
- 规则
- IOI
- 题目
- 6
- 开始于
- 2026-4-14 22:45
- 结束于
- 2026-5-26 14:45
- 持续时间
- 2.5 小时
- 主持人