Tantangan ini adalah hadiah NinjaBearMonkey untuk memenangkan Kawanan Blok Bangunan Bot saya! menantang dengan pengajuan Black Knight . Selamat, NinjaBearMonkey!
Tantangannya di sini cukup sederhana, tetapi memiliki berbagai pendekatan yang mungkin. Ceritanya bahwa di dunia Ilusi Isometrik , ada 6 jenis makhluk:
- Ninja, disingkat
N
- Beruang, disingkat
B
- Monyet, disingkat
M
- NinjaBears, disingkat
NB
- BearMonkeys, disingkat
BM
- NinjaBearMonkeys, disingkat
NBM
( NinjaBearMonkey , tentu saja, tipe terakhir, yang paling kuat.)
Tugas Anda adalah mengambil sensus makhluk-makhluk ini ketika mereka berbaris berdampingan, yaitu ketika string singkatan mereka digabungkan. Peringatannya adalah bahwa Anda perlu memastikan untuk tidak terlalu menghitung bagian-bagian dari beberapa makhluk sebagai makhluk terpisah yang kebetulan terlihat serupa. Makhluk itu akan berbaris sedemikian rupa sehingga:
- Instance dari
NBM
adalah 1 NinjaBearMonkey dan 0 makhluk lainnya. - Contoh yang
NB
tidak diikutiM
adalah 1 NinjaBear dan 0 makhluk lainnya. - Contoh yang
BM
tidak didahului olehN
adalah 1 BearMonkey dan 0 makhluk lainnya. - Kalau tidak, contoh dari
N
,,B
danM
Ninjas, Beruang, dan Monyet masing-masing.
Baris dibaca dari kiri ke kanan.
Jadi, misalnya, di garis makhluk NBMMBNBNBM
, ada 0 Ninja, 1 Beruang, 1 Monyet, 1 NinjaBear, 0 BearMonkeys, dan 2 NinjaBearMonkeys.
Tantangan
Tulis program atau fungsi yang mengambil string karakter N
,, B
dan M
, dan cetak atau kembalikan berapa banyak dari masing-masing dari 6 jenis makhluk yang ada di dalamnya.
Keluaran harus memiliki formulir
#N #B #M #NB #BM #NBM
dengan jumlah makhluk masing-masing menggantikan setiap #
tanda. Semua 6 hitungan harus ditunjukkan, dipisahkan oleh spasi, bahkan ketika mereka 0. Namun, mereka mungkin dalam urutan apa pun (misalnya #NBM
bisa didahulukan).
Juga:
- Input string hanya akan berisi karakter
N
,B
danM
. - Jika string kosong dimasukkan, maka semua jumlah adalah 0.
- Output secara opsional dapat berisi satu spasi awal dan / atau trailing, dan / atau baris baru trailing tunggal.
Pengajuan terpendek dalam byte menang.
Contohnya
Input: NB
Keluaran:0N 0B 0M 1NB 0BM 0NBM
Input: NBM
Keluaran:0N 0B 0M 0NB 0BM 1NBM
Input: NBMMBNBNBM
(contoh dari atas)
Output:0N 1B 1M 1NB 0BM 2NBM
Input: MBNNBBMNBM
Keluaran:1N 1B 1M 1NB 1BM 1NBM
Input: NNNMNBMMBMMBMMMNBMNNMNNNBNNNBNBBNBNMMNBBNBMMBBMBMBBBNNMBMBMMNNNNNMMBMMBM
Keluaran:17N 6B 14M 5NB 8BM 3NBM
NBMNBM
akan menjadi input yang benar-benar valid. Membaca dari kiri ke kanan jelas ada 2 NinjaBearMonkeys.