12.02 Исполнитель «Редактор» – строка с произвольным порядком цифр
Ошибка.
Попробуйте повторить позже
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в
которых и
обозначают последовательности цифр:
А)
Эта команда заменяет в строке первое слева вхождение последовательности на последовательность
Например, выполнение команды заменить преобразует строку
в строку
Если в строке нет вхождений последовательности то выполнение команды заменить
не меняет эту
строку.
Б)
Эта команда проверяет, встречается ли последовательность в строке исполнителя Редактор. Если она встречается, то
команда возвращает логическое значение
, в противном случае возвращает значение
. Строка
исполнителя при этом не изменяется.
Цикл
Выполняется, пока условие истинно.
Какая строка получится в результате применения приведённой ниже программы к строке, содержащей цифр
,
цифр
и
цифр
, расположенных в произвольном порядке. Запишите без разделителей символы, которые
имеют порядковые номера
(отсчет идет с
).
Решение ручками:
Так как цифры расположены в произвольном порядке, то мы можем поставить их в любом порядке. Пусть наша строка
будет иметь вид
Начнем работу нашего алгоритма. Так как в исходной строке мы не находим ни одной из подстрок то в
цикл мы не заходим, тогда строка не изменится, значит, нужно лишь определить элементы, порядковые
номера которых нам даны в условии. Так как порядковые номера начинаются с
, а индексы в строке
с
, то, чтобы верно определить нужные нам индексы, мы вычтем из порядковых номеров
. Получим
индексы
Осталось лишь определить, какие это элементы в строке)) Так как первые 40 элементов
(индексы от 0 до 39) — это
, то первый элемент —
. Далее на отрезке [40, 79] расположены
, так как
, то второе число —
. Последнее расположено в промежутке
, а это число
.
Найденные цифры запишем в ответ без пробелов, то есть ответ —
Решение прогой:
s = "4" * 40 + "8" * 40 + "2" * 50 while "28" in s or "84" in s or "24" in s: if "24" in s: s = s.replace("24", "42", 1) elif "84" in s: s = s.replace("84", "48", 1) elif "28" in s: s = s.replace("28", "82", 1) print(s[25 - 1], s[71 - 1], s[105 - 1], sep=’’)
Специальные программы

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

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

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

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

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

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