Ця виклик - премія NinjaBearMonkey за виграш моїх блокових стадових блоків! виклик з поданням Чорного лицаря . Вітаємо NinjaBearMonkey!
Завдання тут досить просте, але має різноманітні можливі підходи. Історія іде про те, що у світі Ізометричних Ілюзій існує 6 різних типів істот:
- Ніндзя, скорочено
N
- Ведмеді, скорочено
B
- Мавпи, скорочено
M
- NinjaBears, скорочено
NB
- BearMonkeys, скорочено
BM
- NinjaBearMonkeys, скорочено
NBM
( NinjaBearMonkey , звичайно, останній, найпотужніший тип.)
Ваше завдання - провести перепис цих істот, коли вони вишиковуються поруч, тобто коли об'єднуються їх абревіатурні рядки. Застереження полягає в тому, що вам потрібно зробити так, щоб не перелічувати частини деяких істот як окремі істоти, які, схоже, виглядають схожими. Істоти будуть вишикуватися так:
- Будь-який примірник
NBM
- 1 NinjaBearMonkey та ще 0 істот. - Будь-який екземпляр, за яким
NB
не дотримується,M
- 1 NinjaBear та 0 інших істот. - Будь-який екземпляр, якому
BM
не передує,N
- 1 BearMonkey та 0 інших істот. - В іншому випадку, екземпляри
N
,B
іM
поодинокі Ninjas, ведмеді і мавпи відповідно.
Рядок читається зліва направо.
Так, наприклад, у лінійці істот NBMMBNBNBM
є 0 ніндзя, 1 ведмідь, 1 мавпа, 1 ніндзяБар, 0 ведмедя мавп і 2 мавпи ніндзя.
Виклик
Напишіть програму або функцію, яка містить рядки символів N
, B
та M
, та друкує або повертає кількість кожного з 6 типів істот.
Вихід повинен мати форму
#N #B #M #NB #BM #NBM
з відповідним числом істот, що замінює кожен #
знак. Усі 6 підрахунків повинні бути показані, розділені пробілами, навіть коли їх дорівнює 0. Однак вони можуть бути в будь-якому порядку (наприклад, вони можуть бути #NBM
першими).
Також:
- Рядок введення буде містити тільки символи
N
,B
іM
. - Якщо введено порожній рядок, то всі рахунки дорівнюють 0.
- Вихід може необов'язково містити єдиний провідний та / або кінцевий простір та / або один зворотний новий рядок.
Виграє найкоротше подання в байтах.
Приклади
Вхід: NB
Вихід:0N 0B 0M 1NB 0BM 0NBM
Вхід: NBM
Вихід:0N 0B 0M 0NB 0BM 1NBM
Вхід: NBMMBNBNBM
(приклад зверху)
Вихід:0N 1B 1M 1NB 0BM 2NBM
Вхід: MBNNBBMNBM
Вихід:1N 1B 1M 1NB 1BM 1NBM
Вхід: NNNMNBMMBMMBMMMNBMNNMNNNBNNNBNBBNBNMMNBBNBMMBBMBMBBBNNMBMBMMNNNNNMMBMMBM
Вихід:17N 6B 14M 5NB 8BM 3NBM
NBMNBM
був би абсолютно коректним вкладом. Читаючи його зліва направо, явно є 2 NinjaBearMonkeys.