Il puzzle MU è un puzzle in cui scopri se puoi trasformarti MIin MUle seguenti operazioni:
Se la stringa finisce
I, puoi aggiungereUa alla fine. (ad es.MI -> MIU)Se la stringa inizia con
M, è possibile aggiungere una copia della parte successivaMalla stringa.
(ad es.MII -> MIIII)Se la tua stringa contiene tre di seguito
I, puoi cambiarli in aU.
(ad es.MIII -> MU)Se la tua stringa contiene due di seguito
U, puoi eliminarli. (ad esMUUU -> MU.).
Il tuo compito è costruire un programma che determini se ciò è fattibile per qualsiasi stringa di inizio e fine.
Il tuo programma prenderà due stringhe come input. Ogni stringa sarà composta da quanto segue:
uno
M.una serie di fino a ventinove
I's eU' s.
Il programma quindi restituirà true(o la sua rappresentazione del linguaggio di programmazione / YPLRT) se la seconda stringa è raggiungibile dalla prima stringa e false(o YPLRT) se non lo è.
Ingressi e uscite di esempio:
MI MII
true
MI MU
false
MIIIIU MI
true
Il codice più corto in qualsiasi lingua per fare ciò vince.
MIsono esattamente il punto in M(I|U)*cui il numero di Inon è un multiplo di 3. E un tale controllo diretto rende sicuramente il codice più breve. Inoltre, non conosco un limite a priori legato alla lunghezza delle stringhe richieste per passaggi intermedi, quindi la ricerca diretta potrebbe essere semplicemente poco pratica.
MIuna determinata stringa raggiungibile.
IMviene fornito o MUMMI?