Учитывая строку 1и 2любой длины, написать код (не должен быть функцией больше, все будет просто отлично) , который вычисляет , сколько шагов это нужно сжать строку в окончательной форме, следуя этому критерию:
Если строка 112112, это означает , что вы должны напечатать A 1, два 1s и 2, как это:
1112. Когда вы снова выполните операцию, вам придется распечатать 1 и 2. Вы получите 12. Затем вы печатаете один 2, получив 2. Это окончательная форма, так как эта строка больше не будет меняться. Ваш код будет выведен 3, так как вам нужно 3 шага, чтобы добраться до окончательной формы.
Другие правила
Если строка имеет неравномерную длину, последний номер остается нетронутым.
Каждая строка, которая больше не может изменяться (например
222222), считается окончательной формой.Вы не можете использовать любой внешний источник.
Ваш код должен работать с каждой строкой
1и2.Самый короткий код выигрывает, так как это код-гольф.
Ваш код должен печатать каждый шаг.
Каждый метод ввода будет в порядке.
Примеры
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
РЕДАКТИРОВАТЬ: Сильно отредактировано. Извините за это.
1 11 2. Каждые два числа являются парой: первое число в паре говорит, сколько раз визуализировать второе число в паре. Любая последняя нечетная цифра без парного партнера отображается как есть.