Tantangan ini mirip dengan yang lama ini , tetapi dengan beberapa bagian spesifikasi yang tidak jelas dipalu dan persyaratan I / O yang kurang ketat.
Diberikan input dari string yang hanya terdiri dari ASCII dan baris baru yang dapat dicetak, menampilkan berbagai metriknya (byte, kata, jumlah baris).
Metrik yang harus Anda keluarkan adalah sebagai berikut:
Hitungan Byte. Karena string input tetap berada dalam ASCII, ini juga merupakan jumlah karakter.
Jumlah kata. Ini adalah
wcdefinisi dari "kata:" setiap urutan bukan spasi. Misalnya,abc,def"ghi"adalah satu "kata."Jumlah baris. Ini cukup jelas. Input akan selalu berisi baris baru tambahan, yang berarti jumlah baris sama dengan "jumlah baris baru." Tidak akan ada lebih dari satu baris baru.
Output harus benar-benar mereplikasi wcoutput default (kecuali untuk nama file):
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
Perhatikan bahwa jumlah baris lebih dulu, kemudian jumlah kata, dan akhirnya jumlah byte. Selanjutnya, setiap hitungan harus dibiarkan berlapis dengan spasi sedemikian sehingga semuanya memiliki lebar yang sama. Dalam contoh di atas, 5501adalah angka "terpanjang" dengan 4 digit, jadi 165diisi dengan satu spasi dan 90dengan dua. Akhirnya, semua angka harus digabungkan menjadi satu string dengan spasi di antara setiap angka.
Karena ini adalah kode-golf , kode terpendek dalam byte akan menang.
(Oh, dan omong-omong ... Anda tidak dapat menggunakan wcperintah dalam jawaban Anda. Seandainya itu belum jelas.)
Kasing uji ( \nmewakili baris baru; Anda juga dapat juga memerlukan baris tambahan tambahan):
"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"