Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в которых и
обозначают последовательности цифр:
А)
Эта команда заменяет в строке первое слева вхождение последовательности на последовательность
Например, выполнение команды заменить преобразует строку
в строку
Если в строке нет вхождений последовательности то выполнение команды заменить
не меняет эту строку.
Б)
Эта команда проверяет, встречается ли последовательность в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение
, в противном случае возвращает значение
. Строка исполнителя при этом не изменяется.
Цикл
Выполняется, пока условие истинно.
Какая строка получится в результате применения приведённой ниже программы к строке, содержащей цифр
,
цифр
и
цифр
, расположенных в произвольном порядке. Запишите без разделителей символы, которые имеют порядковые номера
(отсчет идет с
).
Решение ручками:
Так как цифры расположены в произвольном порядке, то мы можем поставить их в любом порядке. Пусть наша строка будет иметь вид
Начнем работу нашего алгоритма. Так как в исходной строке мы не находим ни одной из подстрок то в цикл мы не заходим, тогда строка не изменится, значит, нужно лишь определить элементы, порядковые номера которых нам даны в условии. Так как порядковые номера начинаются с
, а индексы в строке с
, то, чтобы верно определить нужные нам индексы, мы вычтем из порядковых номеров
. Получим индексы
Осталось лишь определить, какие это элементы в строке)) Так как первые 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=’’)