Diese Herausforderung ist NinjaBearMonkeys Preis für den Gewinn meiner Block Building Bot Flocks! Herausforderung mit dem Black Knight Submission. Glückwunsch NinjaBearMonkey!
Die Herausforderung ist hier relativ einfach, es gibt jedoch eine Vielzahl möglicher Ansätze. Die Geschichte besagt, dass es in der Welt der isometrischen Illusionen 6 verschiedene Arten von Kreaturen gibt:
- Ninjas, abgekürzt
N
- Bären, abgekürzt
B
- Affen, abgekürzt
M
- NinjaBears, abgekürzt
NB
- BearMonkeys, abgekürzt
BM
- NinjaBearMonkeys, abgekürzt
NBM
( NinjaBearMonkey ist natürlich der letzte, mächtigste Typ.)
Ihre Aufgabe ist es, eine Zählung dieser Kreaturen durchzuführen, wenn sie nebeneinander aufgereiht sind, dh wenn ihre Abkürzungszeichenfolgen verkettet sind. Die Einschränkung ist, dass Sie darauf achten müssen, die Teile einiger Kreaturen nicht als separate Kreaturen zu überzählen, die zufällig ähnlich aussehen. Die Kreaturen richten sich so aus, dass:
- Jede Instanz von
NBM
ist 1 NinjaBearMonkey und 0 andere Kreaturen. - Jede Instanz von
NB
nicht gefolgt vonM
ist 1 NinjaBear und 0 andere Kreaturen. - Jede Instanz von, der
BM
keine vorangestelltN
ist, ist 1 BearMonkey und 0 andere Kreaturen. - Andernfalls sind Instanzen von
N
,B
undM
einzelne Ninjas, Bären bzw. Affen.
Die Zeile wird von links nach rechts gelesen.
So gibt es zum Beispiel in der Reihe der Kreaturen NBMMBNBNBM
0 Ninjas, 1 Bär, 1 Affe, 1 NinjaBär, 0 BearMonkeys und 2 NinjaBearMonkeys.
Herausforderung
Schreiben Sie ein Programm oder eine Funktion , die in einer Reihe von Zeichen nimmt N
, B
und M
, und druckt oder gibt , wie viele von jedem der sechs Arten von Lebewesen in ihm vorhanden sind.
Die Ausgabe sollte die Form haben
#N #B #M #NB #BM #NBM
wobei die jeweilige Kreaturenzahl jedes #
Zeichen ersetzt. Alle 6 Zählungen müssen durch Leerzeichen getrennt angezeigt werden, auch wenn sie 0 sind. Sie können jedoch in beliebiger Reihenfolge angegeben werden (z. B. #NBM
können sie an erster Stelle stehen).
Ebenfalls:
- Die Eingabezeichenfolge enthält nur die Zeichen
N
,B
undM
. - Wenn die leere Zeichenfolge eingegeben wird, sind alle Zählwerte 0.
- Die Ausgabe kann optional ein einzelnes führendes und / oder nachfolgendes Leerzeichen und / oder eine einzelne nachfolgende Newline enthalten.
Die kürzeste Übermittlung in Bytes gewinnt.
Beispiele
Eingabe: NB
Ausgabe:0N 0B 0M 1NB 0BM 0NBM
Eingabe: NBM
Ausgabe:0N 0B 0M 0NB 0BM 1NBM
Eingabe: NBMMBNBNBM
(Beispiel von oben)
Ausgabe:0N 1B 1M 1NB 0BM 2NBM
Eingabe: MBNNBBMNBM
Ausgabe:1N 1B 1M 1NB 1BM 1NBM
Eingabe: NNNMNBMMBMMBMMMNBMNNMNNNBNNNBNBBNBNMMNBBNBMMBBMBMBBBNNMBMBMMNNNNNMMBMMBM
Ausgabe:17N 6B 14M 5NB 8BM 3NBM
NBMNBM
wäre eine völlig gültige Eingabe. Beim Lesen von links nach rechts gibt es eindeutig 2 NinjaBearMonkeys.