이 과제는 기존 과제와 비슷 하지만 사양의 일부가 명확하지 않고 엄격한 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"