Dada una cadena de 1y 2de cualquier longitud, escriba un código (ya no tiene que ser una función , todo estará bien) que calcula cuántos pasos necesita para reducir la cadena a una forma final, siguiendo este criterio:
Si la cadena es 112112, esto significa que se tienen que imprimir a 1, dos 1s y 2, así:
1112. Cuando vuelva a realizar la operación, tendrá que imprimir un 1 y un 2. Obtendrá 12. Luego imprime uno 2, obteniendo 2. Esta es una forma final, ya que esta cadena ya no va a cambiar. Su código saldrá 3, ya que necesita 3 pasos para llegar al formulario final.
Otras reglas
Si la cadena tiene una longitud desigual, el último número permanece intacto.
Cada cadena que ya no puede cambiar (como
222222) se considera una forma final.No puede usar ninguna fuente externa.
Su código debe funcionar con cada cadena de
1y2.El código más corto gana, ya que es el código de golf.
Su código debe imprimir cada paso.
Todo método de entrada estará bien.
Ejemplos
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
EDITAR: Muy editado. Lamento mucho eso.
1 11 2. Cada dos números es un par: el primer número del par dice cuántas veces se representa el segundo número en el par. Cualquier dígito impar final sin un par asociado se representa tal cual.