Как в ЕГЭ · 21 из 42
№12. Редактор — ЕСЛИ подряд
По мотивам задания №12, второй вид программы. Редактор получает строку цифр и выполняет цикл «ПОКА нашлось(v₁) ИЛИ нашлось(v₂) ИЛИ …». Внутри цикла команды стоят подряд, без ИНАЧЕ: «ЕСЛИ нашлось(vᵢ) ТО заменить(vᵢ, wᵢ)». За один проход проверяются все правила по порядку, и каждое, чья строка нашлась, срабатывает один раз — уже на строке, изменённой предыдущими.
Что сделать
Выполните программу Редактора, где правила внутри цикла идут подряд через ЕСЛИ без ИНАЧЕ, и верните итоговую строку.
Что приходит
stroka— исходная строкаpravila— список пар(что найти, на что заменить)в порядке команд внутри цикла
Что вернуть
Строку, которая останется, когда ни одна строка из правил больше не находится.
Допишите функцию redaktor в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
Строка из девяти единиц, правила 111 → 2, 222 → 3, 33 → 1. Первые два прохода дают 2111111 и 22111. На третьем 111 превращается в 2 — получилось 222, и тут же, в том же проходе, срабатывает второе правило: 3. Больше ничего не находится — ответ 3.
redaktor("111111111", [("111", "2"), ("222", "3"), ("33", "1")])
'3'
Пока хоть одна строка «что найти» входит в текущую строку, делается проход: правила перебираются по порядку, и если строка правила входит в текущую, её первое вхождение заменяется. Следующее правило проверяется уже на изменённой строке.
Гарантируется, что программа заканчивается.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.