Thử thách này là giải thưởng của NinjaBearMonkey khi giành được Bầy Bot xây dựng khối của tôi ! thách thức với đệ trình Black Knight . Xin chúc mừng NinjaBearMonkey!
Thách thức ở đây khá đơn giản, nhưng có nhiều cách tiếp cận khả thi. Câu chuyện kể rằng trong thế giới của Isometric Illusions , có 6 loại sinh vật khác nhau:
- Ninjas, viết tắt
N
- Gấu, viết tắt
B
- Khỉ, viết tắt
M
- NinjaBears, viết tắt
NB
- BearMonkeys, viết tắt
BM
- NinjaBearMonkeys, viết tắt
NBM
( Tất nhiên, NinjaBearMonkey là loại cuối cùng, mạnh nhất.)
Nhiệm vụ của bạn là điều tra dân số về những sinh vật này khi chúng được xếp cạnh nhau, tức là khi các chuỗi viết tắt của chúng được nối với nhau. Thông báo trước là bạn cần đảm bảo không đếm quá nhiều bộ phận của một số sinh vật như những sinh vật riêng biệt có vẻ giống nhau. Các sinh vật sẽ xếp hàng sao cho:
- Bất kỳ trường hợp nào
NBM
là 1 NinjaBearMonkey và 0 sinh vật khác. - Bất kỳ trường hợp nào
NB
không được theo sauM
là 1 NinjaBear và 0 sinh vật khác. - Bất kỳ trường hợp nào
BM
không có trướcN
là 1 BearMonkey và 0 sinh vật khác. - Mặt khác, các thể hiện của
N
,B
vàM
là các Ninja, Gấu và Khỉ tương ứng.
Dòng này được đọc từ trái sang phải.
Vì vậy, ví dụ, trong dòng sinh vật NBMMBNBNBM
, có 0 Ninjas, 1 Bear, 1 Monkey, 1 NinjaBear, 0 BearMonkeys và 2 NinjaBearMonkeys.
Thử thách
Viết chương trình hoặc chức năng nhận một chuỗi các ký tự N
, B
và M
, và in hoặc trả về số lượng của mỗi loại trong số 6 loại sinh vật có trong đó.
Đầu ra phải có dạng
#N #B #M #NB #BM #NBM
với số lượng sinh vật tương ứng thay thế mỗi #
dấu hiệu. Tất cả 6 số phải được hiển thị, cách nhau bởi khoảng trắng, ngay cả khi chúng bằng 0. Tuy nhiên, chúng có thể theo bất kỳ thứ tự nào (ví dụ: #NBM
có thể đến trước).
Cũng thế:
- Chuỗi đầu vào sẽ chỉ chứa các ký tự
N
,B
vàM
. - Nếu chuỗi trống là đầu vào, thì tất cả các số là 0.
- Đầu ra có thể tùy ý chứa một không gian hàng đầu và / hoặc dấu, và / hoặc một dòng mới duy nhất.
Đệ trình ngắn nhất tính bằng byte thắng.
Ví dụ
Đầu vào: NB
Đầu ra:0N 0B 0M 1NB 0BM 0NBM
Đầu vào: NBM
Đầu ra:0N 0B 0M 0NB 0BM 1NBM
Đầu vào: NBMMBNBNBM
(ví dụ từ phía trên)
Đầu ra:0N 1B 1M 1NB 0BM 2NBM
Đầu vào: MBNNBBMNBM
Đầu ra:1N 1B 1M 1NB 1BM 1NBM
Đầu vào: NNNMNBMMBMMBMMMNBMNNMNNNBNNNBNBBNBNMMNBBNBMMBBMBMBBBNNMBMBMMNNNNNMMBMMBM
Đầu ra:17N 6B 14M 5NB 8BM 3NBM
NBMNBM
sẽ là đầu vào hoàn toàn hợp lệ. Đọc nó từ trái sang phải rõ ràng có 2 NinjaBearMonkeys.