Задание 12. Информатика. ЕГЭ. Шастин. 19.09.2024

Просмотры: 222
Изменено: 24 ноября 2024

(Л. Шастин) Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах \(v\) и \(w\) обозначают цепочки символов.

А) заменить (v, w)

Эта команда заменяет в строке первое слева вхождение цепочки \(v\) на цепочку \(w\). Например, выполнение команды заменить (111, 27) преобразует строку \(05111150\) в строку \(0527150\). Если в строке нет вхождений цепочки \(v\), то выполнение команды заменить (v, w) не меняет эту строку.

Б) нашлось (v)

Эта команда проверяет, встречается ли цепочка \(v\) в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не меняется.

Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из \(111\) идущей подряд цифр \(3\)? В ответе запишите сумму цифр в полученной строке.

НАЧАЛО
  ПОКА нашлось(ЗЗЗЗЗ) ИЛИ нашлось(1111)
    ЕСЛИ нашлось (33333)
      ТО заменить (33333, 11)
      ИНАЧЕ заменить (111, 33)
    КОНЕЦ ЕСЛИ
  КОНЕЦ ПОКА
КОНЕЦ

Решение:

Python


s = '3'*111
while '33333' in s or '1111' in s:
    s = s.replace('33333', '111', 1) if '33333' in s else s.replace('111', '33', 1)
print(sum(map(int, list(s))))

Ответ: \(12\)