HM278 逗号切片

HM278 逗号切片

HM278 逗号切片

来源: 第 278 集 演讲比赛流程管理系统-读取记录-解析文件中的数据

难度: 普及-

时间限制: 1s

空间限制: 64MB

题目描述

记录文件里每一行都是一整串用逗号拼起来的文本,例如冠军编号、冠军得分、亚军编号、亚军得分、季军编号、季军得分。只拿到整行还不够,必须把每一个字段切出来,放进字符串数组,再整份插入往届表。

切割规则必须按「查找逗号 + 截取子串」做,不要改用按逗号分流:

  1. 起始下标 \(start\) 从 \(0\) 开始。
  2. 从 \(start\) 起查找下一个逗号的位置 \(pos\)。
  3. 若找不到逗号(位置为 \(npos\),也可看成 \(-1\)),结束本行。
  4. 若找到了,取出子串 \([start, pos)\),长度是 \(pos-start\),追加到本届的字符串数组。
  5. 把 \(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
通过率
?
上传者