编辑我修改了规则的措词,使一些隐含的内容更加明确。我还强调了一些明显的混淆,并明确定义了制作独立程序而不是函数的选项。
这里的目标是创建一个接受文本文件(或字符串)并对其进行转置的函数,以使行成为列,反之亦然。
例:
我是文字。 转置我。 你可以做到吗?
结果是:
国贸中心 拉 an mn sy 载脂蛋白 OU ts 杂草 o Tm值 .ei .t ?
规则:
- 您可以假定使用的唯一空格字符是
" "
并且"\n"
在任何行上都没有尾随空格。 - 您可以假定文件是ASCII。您要使用哪个终端标记(CRLF或LF)。它必须在示例中正确运行,但也应在满足上述假设的任何输入下工作。
- 您可能必须在没有空格的地方插入空格(如示例中所示),以使列保持一致。
- 您的结果在任何行上都不能包含尾随空格。
- 最后的换行符(用于最后一行)是可选的。
- 它应该是一个功能或一个完整的程序。如果您的函数接受字符串,则它应该以字符串形式返回结果。如果它接受文件名,则返回保存结果的文件名。另外,您还可以编写一个完整的程序,该程序接受来自STDIN的输入并将正确的结果输出到STDOUT。如果这样做,则不得将任何内容输出到STDERR。
- 最短的程序胜出,但我会赞成我喜欢的任何答案。
根据规则,示例中的输出长度为53或52个字节(对于LF换行符),具体取决于是否包含最终换行符。
注意:这不是特定的要求,但是如果您的函数连续运行两次时与原始函数不同(最终的换行符可能会有所不同,并且文件末尾的任何空行都将被删除),那么您就是可能违反其中一项规则。