排列CSV
概述: 您的工作是采用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解析器或其他类似的外部工具? 否。您必须自己解析数据。