Étant donné une chaîne de 1et 2de n'importe quelle longueur, écrivez du code (ne doit plus être une fonction , tout ira bien) qui calcule le nombre d'étapes nécessaires pour réduire la chaîne à une forme finale, en suivant ce critère:
Si votre chaîne est 112112, cela signifie que vous devez imprimer un 1, deux 1 et un 2, comme ceci:
1112. Lorsque vous effectuerez à nouveau l'opération, vous devrez imprimer un 1 et un 2. Vous obtenez 12. Ensuite, vous imprimez un 2, obtenant 2. C'est une forme finale, car cette chaîne ne va plus changer. Votre code sera affiché 3, car vous avez eu besoin de 3 étapes pour accéder au formulaire final.
Autres règles
Si la chaîne a une longueur inégale, le dernier numéro reste intact.
Chaque chaîne qui ne peut plus changer (comme
222222) est considérée comme une forme finale.Vous ne pouvez utiliser aucune source externe.
Votre code doit fonctionner avec chaque chaîne de
1et2.Le code le plus court gagne, car il s'agit du code-golf.
Votre code devrait imprimer à chaque étape.
Chaque méthode d'entrée ira bien.
Exemples
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: Fortement édité. Désolé pour ça.
1 11 2. Tous les deux nombres sont une paire: le premier nombre de la paire indique combien de fois rendre le deuxième nombre de la paire. Tout dernier chiffre impair sans partenaire de paire est rendu tel quel.