Автор: Основная волна 07.06.2024
Уровень: Базовый
Условие задачи:
Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 100 идущих подряд цифр 9?
ПОКА нашлось (33333) ИЛИ нашлось (999)
ЕСЛИ нашлось (33333)
ТО заменить (33333, 99)
ИНАЧЕ заменить (999, 3)
Теоретическая справка:
Задачи 12 номера можно назвать типовыми (не редкий случай для нашего экзамена), запомнить нужно только несколько основных вещей: 1) строка умноженная на число будет дублироваться 2) всегда пересоздаем строку s = s.replace() иначе строка не изменится 3) в методе .replace('a', 'b', 1) всегда ставим единичку - так как замены производятся последовательно.
Код решения:
Комментарии к коду:
- s = '9' * 100
Инициализируем строку s, состоящую из 100 символов '9'. - while '33333' in s or '999' in s:
Запускаем цикл, который будет продолжаться до тех пор, пока в строке s присутствует подстрока '33333' или '999'. - if '33333' in s:
Проверяем, присутствует ли в строке подстрока '33333'. - s = s.replace('33333', '99', 1)
Если '33333' присутствует, заменяем её на '99' (первая замена слева направо). - else:
Если подстроки '33333' нет в строке, выполняется следующий блок кода. - s = s.replace('999', '3', 1)
Если '999' присутствует, заменяем её на '3' (первая замена слева направо). - print(s)
Выводим итоговое значение строки s после завершения всех замен, когда условия больше не выполняются.