Dada uma sequência de 1e 2de qualquer comprimento, escreva algum código (não precisa mais ser uma função , tudo ficará bem) que calcula quantas etapas é necessário para encolher a sequência para uma forma final, seguindo este critério:
Se a seqüência é 112112, isso significa que você tem que imprimir a 1, dois 1s e a 2, como este:
1112. Quando você realizar a operação novamente, precisará imprimir 1 e 2. Você recebe 12. Então você imprime um 2, obtendo 2. Esta é uma forma final, pois essa sequência não será mais alterada. Seu código será exibido 3, pois você precisou de três etapas para chegar ao formulário final.
Outras regras
Se a sequência tiver um comprimento irregular, o último número permanecerá intocado.
Toda string que não pode mais mudar (como
222222) é considerada uma forma final.Você não pode usar nenhuma fonte externa.
Seu código deve funcionar com todas as cadeias de caracteres
1e2.O código mais curto vence, pois é um código de golfe.
Seu código deve imprimir todas as etapas.
Todo método de entrada ficará bem.
Exemplos
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
Edição: Pesadamente editado. Sinto muito por isso.
1 11 2. A cada dois números é um par: o primeiro número do par diz quantas vezes para renderizar o segundo número no par. Qualquer dígito ímpar final sem um parceiro de par é processado como está.