Ketika bayi membuka mulut mereka, mereka tidak hanya memuntahkan omong kosong. Mereka benar-benar berbicara dengan sandi yang sangat canggih, bukti dewasa ...
The Baby-talk Cipher
Ketika seorang bayi berbicara, itu bisa terlihat seperti gogooa gagooook aagaaoooy
Setiap bagian yang dipisahkan satu ruang mewakili karakter (jadi contoh di atas mewakili 3 karakter).
Untuk menguraikan suatu bagian, kita harus menghitung jumlah As dan Os yang dikandungnya. Namun, kami hanya menghitung yang berdekatan dengan vokal lainnya. Misalnya, A di 'gag' tidak akan dihitung, tetapi A dan O di 'gaog' akan dihitung.
Menghitung contoh di atas akan terlihat seperti ini:
Section | Num Os | Num As
gogooa | 2 | 1
gagooook | 4 | 0
aagaaoooy | 3 | 4
Kami kemudian menggunakan nilai-nilai ini untuk mengubah input menjadi plaintext pada kotak Polybius. Ini adalah representasi 5x5 dari alfabet bahasa Inggris, menghilangkan 'J' (harap dicatat bahwa, dalam baby-talk, aturan penghitungan 0 berlaku untuk tabel):
0 1 2 3 4
0 A B C D E
1 F G H I K
2 L M N O P
3 Q R S T U
4 V W X Y Z
Dengan menggunakan jumlah O sebagai kolom, dan jumlah As sebagai baris, kami menemukan karakter yang mewakili setiap bagian:
Section | Num Os | Num As | Character
gogooa | 2 | 1 | (2,1) -> H
gagooook | 4 | 0 | (4,0) -> E
aagaaoooy | 3 | 4 | (3,4) -> Y
Yang memberitahu kita bahwa bayi itu baru saja mengatakan "HEY".
Catatan :
- Jika bagian yang mewakili karakter memiliki lebih dari 4 As atau Os, abaikan ekstra, karena 4 adalah nilai maksimum pada tabel. - Untuk tugas ini, Y bukan vokal - hanya A, E, I, O dan U.
Tantangan
Tugas Anda adalah membuat program lengkap yang mengambil satu input, sebuah kata dalam bahasa bayi, dan mencetaknya dalam plaintext.
- Program Anda harus dapat mengambil input dalam huruf besar, huruf kecil, dan campuran keduanya.
- Input hanya akan berisi huruf alfabet ASCII (AZ dan az), dengan spasi tunggal untuk memisahkan kata-kata bayi.
- Teks keluaran bisa dalam hal apa pun.
- Anda harus mengambil input dari
STDIN
dan mencetak plaintextSTDOUT
. Jika bahasa Anda tidak memiliki ini, gunakan yang setara terdekat. - Ini adalah kode-golf , jadi kode terpendek dalam byte menang - tetapi semua solusi diterima.
Uji Kasus
'GLOOG KAKAAOOO ARGOOO OOOOOGUGUU' -> CODE
'oaka pooopaa gaau augu' -> GOLF
'Aoao U oOOAoa oaoAoo aoAoAOa' -> NAPPY
'GUG gAGaA gOougOou' -> ALE
'OOaGOG GoGOOoGoU gAA bLAA GOUGoOUgAIGAI' -> HELLO
.toUpperCase()
panggilan fungsi atau serupa, bukan tantangan yang sebenarnya merangsang
gogooa
memiliki 2 ons? Dan bagaimana gagooook
memiliki 0 a?
FAG
: P
'GUG gAGaA gOougOou' -> 'ALE'
Bayi minum bir? : D