A72014 | 日志标准化排序(log)
来源编程题
时间限制1s
内存限制512MB
通过 / 提交0/0
题目描述
给定 n 行日志,每行恰好包含 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 paramsno.为排序后的日志序号;需添加前导零使所有序号位数相同(例如共 200 条时第 1 条序号为001.,共 5 条时序号为1.)date、time的月/日/时/分/秒均补齐两位(年保持四位不变)user全部转成小写,数字不变params中所有key=value按 key 的字典序升序排列后用&连接;若params为空则该字段为空串
排序规则:对标准化后的日志按以下键升序排序:
- 时间戳
YYYY-MM-DD HH:MM:SS useractionparams(整个字符串)
输入格式
第一行输入一个整数 n。
接下来 n 行,每行一条日志。
输出格式
输出 n 行,为标准化并排序后的日志。
输入输出样例
输入 #1
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
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 条:user=Alice 转小写为 alice,params=b=2&a=1 按 key 排序后为 a=1&b=2,时间补零为 2026-03-01 09:02:05
原始第 2 条:user=bob 已小写,params 为空,时间补零为 2026-03-01 09:02:04
原始第 3 条:user=alice,params=z=9(仅一个键值对,无需排序),时间补零为 2026-03-01 09:02:05
原始第 4 条:user=alice,params=a=1(已有序),时间补零为 2026-03-01 09:02:05
排序后:第 2 条时间最早排第 1;其余三条时间相同,再按 user/action/params 排序依次输出。
数据范围
| 数据点编号 | 数据范围 | 特殊性质 |
|---|---|---|
| 1 | n = 1 | 单条日志,params 为空 |
| 2 | n \leq 10 | 所有 params 均为空 |
| 3 | n \leq 100 | user 均已为纯小写,无需转换 |
| 4 | n \leq 100 | 所有日志时间戳完全相同 |
| 5 | n \leq 1000 | 每条 params 至多含一个键值对 |
| 6 | n \leq 5000 | 月/日/时/分/秒均需补零 |
| 7 | n \leq 10^4 | 无特殊性质 |
| 8 | n \leq 5 \times 10^4 | 每条 params 键值对数量较多 |
| 9 | n \leq 10^5 | 无特殊性质 |
| 10 | n \leq 10^5 | 无特殊性质 |
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?