Data una stringa di 1e 2di qualsiasi lunghezza, scrivi un po 'di codice (non deve più essere una funzione , tutto andrà bene) che calcola quanti passaggi è necessario per ridurre la stringa in una forma finale, seguendo questo criterio:
Se la stringa è 112112, questo significa che si devono stampare un 1, due 1 e 2, come questo:
1112. Quando eseguirai di nuovo l'operazione, dovrai stampare 1 e 2 12. Quindi si stampa uno 2, ottenendo 2. Questa è una forma finale, poiché questa stringa non cambierà più. Il tuo codice verrà generato 3, poiché hai bisogno di 3 passaggi per arrivare al modulo finale.
Altre regole
Se la stringa ha una lunghezza irregolare, l'ultimo numero rimane invariato.
Ogni stringa che non può più cambiare (come
222222) è considerata una forma finale.Non è possibile utilizzare alcuna fonte esterna.
Il codice deve funzionare con ogni stringa di
1e2.Vince il codice più corto, in quanto codice-golf.
Il tuo codice dovrebbe stampare ogni passaggio.
Ogni metodo di input andrà bene.
Esempi
Input >> 122122122121212212
Your code has to print:
211222111111222
11222111222
122111222
2111222
111222
1222
222
Steps:7 (you can omit the "Steps")
---- ---- ---- ----
Input >> 22222221
Your code has to print:
22222211
2222221
2
---- ---- ---- ----
Input >> 2222
Your code has to print:
0
EDIT: fortemente modificato. Mi dispiace per quello.
1 11 2. Ogni due numeri è una coppia: il primo numero della coppia indica quante volte rendere il secondo numero nella coppia. Qualsiasi cifra dispari finale senza un partner di coppia viene visualizzata così com'è.