HM278 逗号切片
HM278 逗号切片
来源: 第 278 集 演讲比赛流程管理系统-读取记录-解析文件中的数据
难度: 普及-
时间限制: 1s
空间限制: 64MB
题目描述
记录文件里每一行都是一整串用逗号拼起来的文本,例如冠军编号、冠军得分、亚军编号、亚军得分、季军编号、季军得分。只拿到整行还不够,必须把每一个字段切出来,放进字符串数组,再整份插入往届表。
切割规则必须按「查找逗号 + 截取子串」做,不要改用按逗号分流:
- 起始下标 \(start\) 从 \(0\) 开始。
- 从 \(start\) 起查找下一个逗号的位置 \(pos\)。
- 若找不到逗号(位置为 \(npos\),也可看成 \(-1\)),结束本行。
- 若找到了,取出子串 \([start, pos)\),长度是 \(pos-start\),追加到本届的字符串数组。
- 把 \(start\) 改成 \(pos+1\),继续找下一逗号。
因此每个有效字段后面都必须有逗号;行末那个多余逗号正是为了取出最后一个得分。找不到逗号时不要再把剩余部分当作字段。
往届表的键从 \(0\) 开始:读入的第一行键为 \(0\),第二行键为 \(1\),用「键值对」插入。调试输出时先打印键,再打印数组里下标 \(0\) 到 \(5\) 的六个字段。对外展示时可以把键加一看成第几届,本题先按容器内部的键输出。
输入格式
第一行一个整数 \(n\),表示记录行数。
接下来 \(n\) 行,每行一段以逗号结尾、不含空白的记录,保证恰好能切出六个字段。
输出格式
共 \(n\) 行。第 \(i\) 行先输出该行的键(从 \(0\) 起),再输出六个字段,相邻两项之间一个空格,行末换行。
样例
输入 #1
1
10002,86.675,10009,88.250,10001,80.000,
输出 #1
0 10002 86.675 10009 88.250 10001 80.000
输入 #2
2
10002,86.675,10008,87.200,10004,88.100,
10010,91.000,10007,84.500,10003,80.250,
输出 #2
0 10002 86.675 10008 87.200 10004 88.100
1 10010 91.000 10007 84.500 10003 80.250
说明
\(1 \le n \le 100\)。必须按「找到逗号才截取」的规则切割:如果某行没有行末逗号,最后一个字段会丢失。
样例 #1 的键是 \(0\),六个字段依次是冠军编号、冠军得分、亚军编号、亚军得分、季军编号、季军得分。
信息
- ID
- 1277
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者