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
NBMist 1 NinjaBearMonkey und 0 andere Kreaturen. - Jede Instanz von
NBnicht gefolgt vonMist 1 NinjaBear und 0 andere Kreaturen. - Jede Instanz von, der
BMkeine vorangestelltNist, ist 1 BearMonkey und 0 andere Kreaturen. - Andernfalls sind Instanzen von
N,BundMeinzelne Ninjas, Bären bzw. Affen.
Die Zeile wird von links nach rechts gelesen.
So gibt es zum Beispiel in der Reihe der Kreaturen NBMMBNBNBM0 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, Bund 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. #NBMkönnen sie an erster Stelle stehen).
Ebenfalls:
- Die Eingabezeichenfolge enthält nur die Zeichen
N,BundM. - 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
NBMNBMwäre eine völlig gültige Eingabe. Beim Lesen von links nach rechts gibt es eindeutig 2 NinjaBearMonkeys.