Исполнитель Редактор получает на вход строку цифр и преобразует её. Редактор может выполнять две команды, в обеих командах и
обозначают цепочки цифр.
А) .
Эта команда заменяет в строке первое слева вхождение цепочки на цепочку
. Например, выполнение команды
преобразует строку в строку
.
Если в строке нет вхождений цепочки , то выполнение команды заменить
не меняет эту строку.
Б) .
Эта команда проверяет, встречается ли цепочка в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение
, в противном случае возвращает значение
. Строка исполнителя при этом не изменяется.
выполняется, пока условие истинно.
Дана программа для редактора:
Сколько троек будет содержать строка, которая получится в результате применения приведённой выше программы к строке, состоящей из идущих подряд чисел
? В ответе запишите только число — количество троек в полученной строке.
Решение руками
Программа на каждом шаге преобразовывает в
. То есть каждая часть строки
становится
. Раз таких чисел было
подряд, то каждая из них превратилась в две тройки и в результате получилось
троек.
Решение программой
s = ’123’ * 30
while ’123’ in s:
s = s.replace(’12’, ’3’, 1)
count_threes = s.count(’3’)
print(count_threes)