Das MU - Puzzle ist ein Puzzle , in dem Sie herausfinden, ob Sie drehen können MIin MUbestimmten den folgenden Operationen:
Wenn Ihre Zeichenfolge auf endet
I, können Sie einUam Ende hinzufügen . (zBMI -> MIU)Wenn Ihre Zeichenfolge mit beginnt
M, können Sie eine Kopie des Teils danachMan die Zeichenfolge anhängen .
(zBMII -> MIIII)Wenn Ihre Zeichenfolge drei aufeinanderfolgende Zeichenfolgen enthält
I, können Sie sie in a ändernU.
(zBMIII -> MU)Wenn Ihre Zeichenfolge zwei aufeinanderfolgende Zeichenfolgen enthält
U, können Sie diese löschen. (zBMUUU -> MU).
Ihre Aufgabe ist es, ein Programm zu erstellen, das festlegt, ob dies für Start- und Zielzeichenfolgen möglich ist.
Ihr Programm nimmt zwei Zeichenfolgen als Eingabe. Jede Zeichenfolge besteht aus folgenden Elementen:
eins
M.eine Zeichenfolge von bis zu neunundzwanzig
IundU.
Ihr Programm gibt dann true(oder die Darstellung Ihrer Programmiersprache / YPLRT) zurück, wenn die zweite Zeichenfolge von der ersten Zeichenfolge aus erreichbar ist, und false(oder YPLRT), wenn dies nicht der Fall ist.
Beispiel Ein- und Ausgänge:
MI MII
true
MI MU
false
MIIIIU MI
true
Der kürzeste Code in einer Sprache, um dies zu tun, gewinnt.
MIdenen aus erreicht werden kann, genau die, von M(I|U)*denen die Anzahl Ikein Vielfaches von 3 ist. Und eine solche direkte Prüfung führt mit Sicherheit zu einem kürzeren Code. Ich kenne auch keine A-priori-Grenze für die Länge der Zeichenfolgen, die für Zwischenschritte erforderlich sind, sodass die direkte Suche möglicherweise einfach unpraktisch ist.
MIeiner bestimmten erreichbaren Zeichenfolge zu geben.
IMgeliefert wird oder MUMMI?