O forse non è davvero un labirinto, ma comunque.
Regole:
Ingresso è una stringa di due linee, composto da
*,1,xeX. Quella corda è un labirinto da percorrere. Le linee hanno la stessa lunghezza .È possibile prendere l'input come stringa con
,(virgola) o qualsiasi comodo separatore tra queste due righe. Oppure potresti prendere entrambe le righe come argomenti separati per la tua funzione.L'output è il numero di passaggi che è necessario eseguire per uscire dalla stringa (l'ultimo passaggio è il passaggio che consente di uscire dalla stringa).
Inizi nell'angolo in alto a sinistra (la linea più alta), prima del primo simbolo.
Per ogni passaggio, ci si sposta in avanti di un simbolo (dall'ennesima (n + 1) alla posizione ). Quindi, a seconda del personaggio su cui calpesti, il risultato è diverso. Ecco cosa fa ogni personaggio:
*- Niente. Lo calpesti normalmente.x- dopo averlo calpestato, cambia la linea, ma rimani sulla stessa distanza orizzontale dall'inizio. Ad esempio, sei salito sulla terza posizione della linea superiore exqui hai incontrato una lettera minuscola . Quindi si passa immediatamente alla riga inferiore, ma di nuovo alla terza posizione.X- cambia linea e vai alla posizione successiva. L'esempio è lo stesso lì, ma ti sposti anche dalla terza alla quarta posizione (quindi sei sulla seconda linea nella quarta posizione).1- vai avanti di un'altra posizione.
Una volta che ogni personaggio fa il suo lavoro, viene sostituito con uno spazio e non "funziona" più.
Seguono esempi.
Input :
x *Come detto prima, inizi prima del primo simbolo della prima riga. Il primo passo ti sposta sulla lettera
xe questa lettera passa alla seconda riga. La letteraxnon funziona più comex, ma sostituita con*. Ciò sarà più pertinente negli ultimi esempi. Ora sei su un asterisco nella riga inferiore e non ti ha fatto nulla.Il secondo passo ti sta portando avanti e tu esci dalla stringa, quindi il labirinto è completo e ha fatto 2 passi.
Uscita
2.Input :
xX* x1*1 ° passo : vai avanti
x, che ti sposta sullaxriga inferiore. Ecco la regola che dice che il carattere usato è sostituito da un asterisco. Quindi si torna indietro sulla prima riga, ma non è piùxpresente, poiché è stato utilizzato ed è diventato un asterisco. Quindi ti muovi in sicurezza su questo asterisco e il passaggio è completato (ora sei nella prima posizione della prima riga).2 ° passo : vai avanti
X, ti spinge alla linea inferiore e poi ti spinge in avanti. Ora risiedi sulla terza posizione della seconda riga (asterisco), non avendo mai visitato la seconda posizione (che contiene1).3 ° passo : vai avanti, uscendo dalla stringa.
Uscita :
3.
Casi test:
Ingresso:
*1* xxxUscita:
3. (perché1ti fa saltare in terza posizione). Lì non visiti mai la seconda riga, ma è necessaria una parte dell'input.Ingresso:
*X*1*x x*1xx*Uscita:
4.Ingresso:
1x1x ***XUscita:
3.Ingresso:
1*x1xxx1*x x*x1*11X1xUscita:
6.Ingresso:
xXXXxxx111* **xxx11*xxxUscita:
6.
"\n\n"è una stringa di due righe ...
1, mentre inizi prima della 1a riga, poi vai avanti di un passo e poi finisci il labirinto ...