Проходим по строке, запоминая текущий символ и сколько раз он уже повторился. Если следующий символ такой же, то просто увеличиваем длину серии на 1, если нет - выводим информацию про серию и начинаем новую. Надо не забыть корректно обработать последний символ - после него серия также заканчивается.
Если нужны подробности (заодно мы поймем, что этот ответ единственный), читайте дальше.
Идем с конца.
Если последняя операция - прибавление 1, то на предыдущем шаге получится 24, это не квадрат, поэтому на предыдущем шаге тоже было 1, и на еще двух тоже. Итого, за 4 операции мы получим только 21, это слишком много.
Тогда последняя операция - возведение в квадрат, на предыдущем шаге получилось 5.
5 - не квадрат, так что на этом шаге прибавляли 1, было 4.
Если 4 получили прибавлением единицы, то на предыдущем шаге было получено 3, это не квадрат, поэтому и первый шаг был прибавлением 1, и исходное число - 2, не подходит. Значит, 4 получили возведением в квадрат двойки.
2 - не квадрат, так что на этом шаге прибавляли 1, было 1.
Проходим по строке, запоминая текущий символ и сколько раз он уже повторился. Если следующий символ такой же, то просто увеличиваем длину серии на 1, если нет - выводим информацию про серию и начинаем новую. Надо не забыть корректно обработать последний символ - после него серия также заканчивается.
Код (Python 3):
s = input()
current_digit, count = None, 0
for digit in s:
if current_digit != digit:
if count > 0:
print(count, current_digit)
current_digit, count = digit, 1
else:
count += 1
print(count, current_digit)
2121
Объяснение:
ответ можно угадать:
(2) 1 + 1 = 2
(1) 2² = 4
(2) 4 + 1 = 5
(1) 5² = 25
Если нужны подробности (заодно мы поймем, что этот ответ единственный), читайте дальше.
Идем с конца.
Если последняя операция - прибавление 1, то на предыдущем шаге получится 24, это не квадрат, поэтому на предыдущем шаге тоже было 1, и на еще двух тоже. Итого, за 4 операции мы получим только 21, это слишком много.
Тогда последняя операция - возведение в квадрат, на предыдущем шаге получилось 5.
5 - не квадрат, так что на этом шаге прибавляли 1, было 4.
Если 4 получили прибавлением единицы, то на предыдущем шаге было получено 3, это не квадрат, поэтому и первый шаг был прибавлением 1, и исходное число - 2, не подходит. Значит, 4 получили возведением в квадрат двойки.
2 - не квадрат, так что на этом шаге прибавляли 1, было 1.