Исполнитель ПЕЛЬМЕНИ получает на вход строку цифр и преобразовывает её. ПЕЛЬМЕНИ может выполнять две команды, в обеих командах и
обозначают цепочки символов.
1.
2.
Дана программа для исполнителя ПЕЛЬМЕНИ:
Найдите сумму нечетных цифр строки, полученной в результате применения приведённой выше программы к строке
Решение ручками:
Начнем работу нашего алгоритма. Так как в исходной строке мы нашли , то заменим
на
.
Получим строку
На данной итерации цикла строка больше меняться не будет, идем дальше. Вновь встречаем , можем заметить, что если встречается
, то количество
уменьшается на один, а количество
остается неизменным, тогда можем выполнить это дейстие еще 999 раз, пока у нас не закончатся
.
Получим строку
Так как у нас уже нет комбинаций , проверяем следующие условия: находим комбинацию
, заменим
на
. Заметим, что после выполнения данного действия количество
уменьшается на два, а количество
увеличивается на единицу, при этом все новообразованные
располагаются после
. Повторим замену
на
еще
раз, получим строку:
Проверим. нет ли в строке комбинации — нет, значит, завершаем работу алгоритма.
Запишем в ответ сумму нечетных цифр полученной после работы алгоритма строки: . Запишем в ответ данное значение.
Решение прогой:
s = "3" * 100 + "1" * 55 + "0" * 1000
while "10" in s or "11" in s or "330" in s:
if "10" in s:
s = s.replace("10", "1", 1)
elif "11" in s:
s = s.replace("11", "3", 1)
elif "330" in s:
s = s.replace("330", "100", 1)
print(sum([int(i) for i in list(s) if int(i) % 2 != 0]))