Враховуючи рядок 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
EDIT: Сильно відредагований. Тож шкода про це.
1 11 2. Кожні два числа - це пара: перше число пари говорить про те, скільки разів виводити друге число в парі. Будь-яка остаточна непарна цифра без парного партнера надається такою, якою є.