这种挑战是相似的这个旧的,但与规范的一些不明之处敲定并不太严格的I / O需求。
给定仅由可打印ASCII和换行符组成的字符串输入,输出其各种度量(字节,字,行数)。
您必须输出的指标如下:
字节数。由于输入字符串保持在ASCII之内,因此这也是字符数。
字数。这是
wc
“单词:”的定义,它是非空格的任何序列。例如,abc,def"ghi"
是一个“单词”。行数。这是不言自明的。输入将始终包含尾随换行符,这意味着行数与“换行数”同义。尾随换行符不会超过一个。
输出必须完全复制默认wc
输出(文件名除外):
llama@llama:~$ cat /dev/urandom | tr -cd 'A-Za-z \n' | head -90 > example.txt
llama@llama:~$ wc example.txt
90 165 5501 example.txt
请注意,行数是第一个,然后是字数,最后是字节数。此外,每个计数必须用空格填充,以使它们都具有相同的宽度。在上面的示例中,5501
是具有4位数字的“最长”数字,因此165
用一个空格和90
两个空格填充。最后,所有数字都必须连接成一个字符串,每个数字之间要有一个空格。
因为这是code-golf,所以以字节为单位的最短代码将获胜。
(哦,顺便说一句……您不能在wc
命令中使用该命令。以防万一,这还不是很明显。)
测试用例(\n
代表一个换行符;您可能还需要一个额外的尾随换行符):
"a b c d\n" -> "1 4 8"
"a b c d e f\n" -> " 1 6 12"
" a b c d e f \n" -> " 1 6 16"
"a\nb\nc\nd\n" -> "4 4 8"
"a\n\n\nb\nc\nd\n" -> " 6 4 10"
"abc123{}[]()...\n" -> " 1 1 16
"\n" -> "1 0 1"
" \n" -> "1 0 4"
"\n\n\n\n\n" -> "5 0 5"
"\n\n\na\nb\n" -> "5 2 7"