12.01 Исполнитель «Редактор» – известная строка
Ошибка.
Попробуйте повторить позже
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в
которых и
обозначают последовательности цифр:
А)
Эта команда заменяет в строке первое слева вхождение последовательности на последовательность
Например, выполнение команды заменить преобразует строку
в строку
Если в строке нет вхождений последовательности то выполнение команды заменить
не меняет эту
строку.
Б)
Эта команда проверяет, встречается ли последовательность в строке исполнителя Редактор. Если она
встречается, то команда возвращает логическое значение
, в противном случае возвращает значение
.
Строка исполнителя при этом не изменяется.
Цикл
Выполняется, пока условие истинно.
Какая строка получится в результате применения приведённой ниже программы к строке:
Если вы получили строку вида , то в ответе нужно записать
, а для строки
—
,
скобки ставятся при трех и более повторениях.
Решение ручками:
Начнем работу нашего алгоритма. Так как в исходной строке мы нашли , то заменим
на
.
Получим строку
На данной итерации цикла строка больше меняться не будет, идем дальше. Вновь встречаем , можем заметить, что
если встречается
, то количество
уменьшается на один, а количество
остается неизменным, тогда можем
выполнить эти дейстия еще четыре раза, пока у нас не закончатся
.
Получим строку
Так как у нас уже нет комбинаций , проверяем следующие условия: находим
- заходим в цикл. Под первое
условие наша строка не подходит - у нас нет
, но зато она подходит под второе, ведь у нас есть
. Тогда заменим
на
.
Получим строку
Заметим, что количество уменьшается на один, а количество
увеличивается на
. Тогда повторим данное
действие, пока у нас есть комбинации
, а именно еще девять раз. Получим строку
. Теперь мы будем заходить
только в третье условие. Заметим, что на каждой итерации кол-во троек уменьшается на
. Значит в какой-то момент мы
дойдём до строки
. После этого в последний раз зайдём в третье условие и получим строку
, то есть запишем
в ответ
.
Решение прогой:
s = ’1’ * 10 + ’2’ * 5 + ’333’ while ’12’ in s or ’13’ in s or ’33333’ in s: if ’23’ in s: s = s.replace(’23’, ’3’, 1) elif ’13’ in s: s = s.replace(’13’, ’33’, 1) elif ’333’ in s: s = s.replace(’333’, ’3’, 1) print(s)
Специальные программы

Программа
лояльности v2.0
Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!
Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение
Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты
Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей
Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ
Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!