概述:
您的工作是采用key=value
格式的CSV输入,并以更有条理的方式(请参见下文)将其排列起来。
输入:
始终通过stdin。记录将始终采用以下格式key=value
:
foo=bar,baz=quux
abc=123,foo=fubar
baz=qwe,abc=rty,zxc=uiop,foo=asdf
- 事先没有可能的键列表,您必须在输入文本中找到它们。
- 输入结束将通过发出信号
EOF
,无论EOF
您的操作系统适合哪种实现。
输出:
输出的第一行将是按字母顺序排列的所有键的列表(即使键是全数字)。之后,以相同的CSV格式将每个记录打印为适当的数字标题,而不列出键。因此,对于上面的示例,正确的输出将是:
abc,baz,foo,zxc
,quux,bar,
123,,fubar,
rty,qwe,asdf,uiop
常问问题:
- 我是否需要担心输入格式错误?
- 否。如果输入的格式不正确,例如,一行
foo,bar,baz
- 否。如果输入的格式不正确,例如,一行
- 如何处理特殊字符的转义?
- 你可以假设不会有额外的
,
或者=
在不属于一部分的数据key=value
格式。"
在此比赛中没有任何特殊含义(即使在传统CSV中也没有)。也不以任何方式特别。
- 行应与以下正则表达式匹配:
^([^=,]+=[^=,]+)(,[^=,]+=[^=,]+)*$
- 因此,键和值都将匹配
[^=,]+
- 因此,键和值都将匹配
- 你可以假设不会有额外的
- 什么
CRLF
对LF
?- 您可以选择适合您平台的任何定界符。大多数语言无需特殊的分隔代码即可处理此问题。
- 如果最后几列不存在,是否需要打印尾随逗号?
- 是。参见示例。
- 是否允许CSV解析器或其他类似的外部工具?
- 否。您必须自己解析数据。