12.01 Исполнитель «Редактор» – известная строка
Готовиться с нами - ЛЕГКО!
Ошибка.
Попробуйте повторить позже
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в
которых и
обозначают последовательности цифр:
А) заменить
Эта команда заменяет в строке первое слева вхождение последовательности на последовательность
Например, выполнение команды заменить преобразует строку
в строку
Если в строке нет вхождений последовательности то выполнение команды заменить
не меняет эту
строку.
Б) Нашлось
Эта команда проверяет, встречается ли последовательность в строке исполнителя Редактор. Если она
встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение
«ложь».
Строка исполнителя при этом не изменяется.
Цикл
ПОКА условие
последовательность команд
КОНЕЦ ПОКА
Выполняется, пока условие истинно.
В конструкции:
ЕСЛИ условие
ТО команда1
КОНЕЦ ЕСЛИ Выполняется команда1 (если условие истинно).
ЕСЛИ условие
ТО команда1
ИНАЧЕ команда2
КОНЕЦ ЕСЛИ Выполняется Выполняется команда1 (если условие истинно) или команда2 (если условие ложно).
Какая строка получится в результате применения приведённой ниже программы к строке:
НАЧАЛО
ПОКА нашлось
ЕСЛИ нашлось
ТО заменить
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
Если вы получили строку вида , то в ответе нужно записать
, а для строки
-
,
скобки ставятся при трех и более повторениях.
Аналитическое решение
Алгоритм ищет пары единиц и заменяет 1 на 0. Он будет продолжаться до тех пор, пока в строке не останется одна единица. Оставшиеся 19 единиц будут заменены на нули.
Получится строка из 19 нулей и одной единицы.
Программное решение
s = ’1’ * 20 while ’11’ in s: if ’1’ in s: s = s.replace(’1’, ’0’, 1) print(s)
Ошибка.
Попробуйте повторить позже
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в
которых и
обозначают последовательности цифр:
А) заменить
Эта команда заменяет в строке первое слева вхождение последовательности на последовательность
Например, выполнение команды заменить преобразует строку
в строку
Если в строке нет вхождений последовательности то выполнение команды заменить
не меняет эту
строку.
Б) Нашлось
Эта команда проверяет, встречается ли последовательность в строке исполнителя Редактор. Если она
встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение
«ложь».
Строка исполнителя при этом не изменяется.
Цикл
ПОКА условие
последовательность команд
КОНЕЦ ПОКА
Выполняется, пока условие истинно.
В конструкции:
ЕСЛИ условие
ТО команда1
КОНЕЦ ЕСЛИ Выполняется команда1 (если условие истинно).
ЕСЛИ условие
ТО команда1
ИНАЧЕ команда2
КОНЕЦ ЕСЛИ Выполняется Выполняется команда1 (если условие истинно) или команда2 (если условие ложно).
Какая строка получится в результате применения приведённой ниже программы к строке:
НАЧАЛО
ПОКА нашлось
ЕСЛИ нашлось
ТО заменить
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
Если вы получили строку вида , то в ответе нужно записать
, а для строки
-
,
скобки ставятся при трех и более повторениях.
Аналитическое решение
Пока в строке есть три двойки, алгоритм заменяет две двойки на 1. Получается алгоритм завершится, когда в строке останется две двойки.
Программное решение
s = ’2’ * 15 while ’222’ in s: if ’22’ in s: s = s.replace(’22’, ’2’, 1) print(s)
Ошибка.
Попробуйте повторить позже
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в
которых и
обозначают последовательности цифр:
А)
Эта команда заменяет в строке первое слева вхождение последовательности на последовательность
Например, выполнение команды заменить преобразует строку
в строку
Если в строке нет вхождений последовательности то выполнение команды заменить
не меняет эту
строку.
Б)
Эта команда проверяет, встречается ли последовательность в строке исполнителя Редактор. Если она
встречается, то команда возвращает логическое значение
, в противном случае возвращает значение
.
Строка исполнителя при этом не изменяется.
Цикл
Выполняется, пока условие истинно.
Дана программа для редактора:
Какая строка получится в результате применения приведённой выше программы к строке:
Аналитическое решение
Все пары троек заменятся на 32. В строке 5 пар троек, значит получится 5 пар 32.
Программное решение
s = ’3’ * 10 while ’33’ in s: if ’33’ in s: s = s.replace(’33’, ’32’, 1) print(s)
Ошибка.
Попробуйте повторить позже
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в
которых и
обозначают последовательности цифр:
А) заменить
Эта команда заменяет в строке первое слева вхождение последовательности на последовательность
Например, выполнение команды заменить преобразует строку
в строку
Если в строке нет вхождений последовательности то выполнение команды заменить
не меняет эту
строку.
Б) Нашлось
Эта команда проверяет, встречается ли последовательность в строке исполнителя Редактор. Если она
встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение
«ложь».
Строка исполнителя при этом не изменяется.
Цикл
ПОКА условие
последовательность команд
КОНЕЦ ПОКА
Выполняется, пока условие истинно.
В конструкции:
ЕСЛИ условие
ТО команда1
КОНЕЦ ЕСЛИ Выполняется команда1 (если условие истинно).
ЕСЛИ условие
ТО команда1
ИНАЧЕ команда2
КОНЕЦ ЕСЛИ Выполняется Выполняется команда1 (если условие истинно) или команда2 (если условие ложно).
Какая строка получится в результате применения приведённой ниже программы к строке:
НАЧАЛО
ПОКА нашлось
ЕСЛИ нашлось
ТО заменить
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
Если вы получили строку вида , то в ответе нужно записать
, а для строки
-
,
скобки ставятся при трех и более повторениях.
Аналитическое решение
На стыке единиц и пятерок 15 заменится на 51. Далее все единицы слева будут заменяться на 5, после чего алгоритм начнем заменять все пятерки справа на единицы. В итоге все единицы заменятся на пятерки, а все пятерки - на единицы, количество каждой цифры останется неизменным.
Программное решение
s = ’1’ * 10 + ’5’ * 10 while ’15’ in s: if ’15’ in s: s = s.replace(’15’, ’51’, 1) print(s)
Ошибка.
Попробуйте повторить позже
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в
которых и
обозначают последовательности цифр:
А) заменить
Эта команда заменяет в строке первое слева вхождение последовательности на последовательность
Например, выполнение команды заменить преобразует строку
в строку
Если в строке нет вхождений последовательности то выполнение команды заменить
не меняет эту
строку.
Б) Нашлось
Эта команда проверяет, встречается ли последовательность в строке исполнителя Редактор. Если она
встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение
«ложь».
Строка исполнителя при этом не изменяется.
Цикл
ПОКА условие
последовательность команд
КОНЕЦ ПОКА
Выполняется, пока условие истинно.
В конструкции:
ЕСЛИ условие
ТО команда1
КОНЕЦ ЕСЛИ Выполняется команда1 (если условие истинно).
ЕСЛИ условие
ТО команда1
ИНАЧЕ команда2
КОНЕЦ ЕСЛИ Выполняется Выполняется команда1 (если условие истинно) или команда2 (если условие ложно).
Какая строка получится в результате применения приведённой ниже программы к строке:
НАЧАЛО
ПОКА нашлось ИЛИ нашлось
заменить
заменить
КОНЕЦ ПОКА
КОНЕЦ
Если вы получили строку вида , то в ответе нужно записать
, а для строки
-
,
скобки ставятся при трех и более повторениях.
Аналитическое решение
Проследим, что происходит с ’1212’: .
Значит, две пары ’12’ дают одну двойку. Всего в строке двенадцать пар ’12’, проделаем это с десятью парами и получим строку ’221212’.
Далее рассмотрим каждую замену, чтобы учесть условие, когда цикл завершается:
.
Программное решение
s = ’12’ * 12 while ’12’ in s or ’222’ in s: s = s.replace(’12’, ’2’, 1) s = s.replace(’222’, ’2’, 1) print(s)
Ошибка.
Попробуйте повторить позже
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в
которых и
обозначают последовательности цифр:
А) заменить
Эта команда заменяет в строке первое слева вхождение последовательности на последовательность
Например, выполнение команды заменить преобразует строку
в строку
Если в строке нет вхождений последовательности то выполнение команды заменить
не меняет эту
строку.
Б) Нашлось
Эта команда проверяет, встречается ли последовательность в строке исполнителя Редактор. Если она
встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение
«ложь».
Строка исполнителя при этом не изменяется.
Цикл
ПОКА условие
последовательность команд
КОНЕЦ ПОКА
Выполняется, пока условие истинно.
В конструкции:
ЕСЛИ условие
ТО команда1
КОНЕЦ ЕСЛИ Выполняется команда1 (если условие истинно).
ЕСЛИ условие
ТО команда1
ИНАЧЕ команда2
КОНЕЦ ЕСЛИ Выполняется Выполняется команда1 (если условие истинно) или команда2 (если условие ложно).
Какая строка получится в результате применения приведённой ниже программы к строке:
НАЧАЛО
ПОКА нашлось ИЛИ нашлось
заменить
заменить
КОНЕЦ ПОКА
КОНЕЦ
Если вы получили строку вида , то в ответе нужно записать
, а для строки
-
,
скобки ставятся при трех и более повторениях.
Аналитическое решение
Проследим, что происходит с ’571571’:
Тогда восемь пар ’571’ дадут: .
Тогда для оставшейся строки: .
Программное решение
s = ’571’ * 10 while ’57’ in s or ’1111’ in s: s = s.replace(’57’, ’1’, 1) s = s.replace(’1111’, ’1’, 1) print(s)
Ошибка.
Попробуйте повторить позже
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в
которых и
обозначают последовательности цифр:
А)
Эта команда заменяет в строке первое слева вхождение последовательности на последовательность
Например, выполнение команды заменить преобразует строку
в строку
Если в строке нет вхождений последовательности то выполнение команды заменить
не меняет эту
строку.
Б)
Эта команда проверяет, встречается ли последовательность в строке исполнителя Редактор. Если она
встречается, то команда возвращает логическое значение
, в противном случае возвращает значение
.
Строка исполнителя при этом не изменяется.
Цикл
Выполняется, пока условие истинно.
Какая строка получится в результате применения приведённой ниже программы к строке:
Если вы получили строку вида , то в ответе нужно записать
, а для строки
—
,
скобки ставятся при трех и более повторениях.
Решение ручками:
Начнем работу нашего алгоритма. Так как в исходной строке мы нашли , то заменим
на
.
Получим строку
На данной итерации цикла строка больше меняться не будет, идем дальше. Вновь встречаем , можем заметить, что
если встречается
, то количество
уменьшается на один, а количество
остается неизменным, тогда можем
выполнить эти дейстия еще четыре раза, пока у нас не закончатся
.
Получим строку
Так как у нас уже нет комбинаций , проверяем следующие условия: находим
- заходим в цикл. Под первое
условие наша строка не подходит - у нас нет
, но зато она подходит под второе, ведь у нас есть
. Тогда заменим
на
.
Получим строку
Заметим, что количество уменьшается на один, а количество
увеличивается на
. Тогда повторим данное
действие, пока у нас есть комбинации
, а именно еще девять раз. Получим строку
. Теперь мы будем заходить
только в третье условие. Заметим, что на каждой итерации кол-во троек уменьшается на
. Значит в какой-то момент мы
дойдём до строки
. После этого в последний раз зайдём в третье условие и получим строку
, то есть запишем
в ответ
.
Решение прогой:
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)
Ошибка.
Попробуйте повторить позже
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в
которых и
обозначают последовательности цифр:
А) заменить
Эта команда заменяет в строке первое слева вхождение последовательности на последовательность
Например, выполнение команды заменить преобразует строку
в строку
Если в строке нет вхождений последовательности то выполнение команды заменить
не меняет эту
строку.
Б) Нашлось
Эта команда проверяет, встречается ли последовательность в строке исполнителя Редактор. Если она
встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение
«ложь».
Строка исполнителя при этом не изменяется.
Цикл
ПОКА условие
последовательность команд
КОНЕЦ ПОКА
Выполняется, пока условие истинно.
В конструкции:
ЕСЛИ условие
ТО команда1
КОНЕЦ ЕСЛИ Выполняется команда1 (если условие истинно).
ЕСЛИ условие
ТО команда1
ИНАЧЕ команда2
КОНЕЦ ЕСЛИ Выполняется Выполняется команда1 (если условие истинно) или команда2 (если условие ложно).
Какая строка получится в результате применения приведённой ниже программы к строке:
НАЧАЛО
ПОКА нашлось ИЛИ нашлось
ИЛИ нашлось
ЕСЛИ нашлось
ТО заменить
ИНАЧЕ ЕСЛИ нашлось
ТО заменить
ИНАЧЕ ЕСЛИ нашлось
ТО заменить
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
Если вы получили строку вида , то в ответе нужно записать
, а для строки
-
,
скобки ставятся при трех и более повторениях.
s = ’1’ * 100 + ’2’ * 100 + ’3’ while ’12’ in s or ’23’ in s or ’33333’ in s: if ’12’ in s: s = s.replace(’12’, ’2’, 1) elif ’23’ in s: s = s.replace(’23’, ’33’, 1) elif ’333’ in s: s = s.replace(’3333’, ’3’, 1) print(s)
Ошибка.
Попробуйте повторить позже
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в
которых и
обозначают последовательности цифр:
А) заменить
Эта команда заменяет в строке первое слева вхождение последовательности на последовательность
Например, выполнение команды заменить преобразует строку
в строку
Если в строке нет вхождений последовательности то выполнение команды заменить
не меняет эту
строку.
Б) Нашлось
Эта команда проверяет, встречается ли последовательность в строке исполнителя Редактор. Если она
встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение
«ложь».
Строка исполнителя при этом не изменяется.
Цикл
ПОКА условие
последовательность команд
КОНЕЦ ПОКА
Выполняется, пока условие истинно.
В конструкции:
ЕСЛИ условие
ТО команда1
КОНЕЦ ЕСЛИ Выполняется команда1 (если условие истинно).
ЕСЛИ условие
ТО команда1
ИНАЧЕ команда2
КОНЕЦ ЕСЛИ Выполняется Выполняется команда1 (если условие истинно) или команда2 (если условие ложно).
Найдите произведение количества тех цифр, которых больше всего, и значения тех цифр, которых меньше всего в
строке, получившейся в результате применения приведённой ниже программы к строке:
НАЧАЛО
ПОКА нашлось ИЛИ нашлось
ПОКА нашлось
заменить
КОНЕЦ ПОКА
ЕСЛИ нашлось
ТО заменить
ИНАЧЕ ЕСЛИ нашлось
ТО заменить
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
s = ’7’ * 367 + ’9’ * 34 while ’77’ in s or ’8’ in s: while ’79’ in s: s = s.replace(’79’, ’77’, 1) if ’77’ in s: s = s.replace(’77’, ’9’, 1) elif ’9’ in s: s = s.replace(’9’, ’8’, 1) print(s) print(s.count(’9’) * 7)
Ошибка.
Попробуйте повторить позже
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в
которых и
обозначают последовательности цифр:
А) заменить
Эта команда заменяет в строке первое слева вхождение последовательности на последовательность
Например, выполнение команды заменить преобразует строку
в строку
Если в строке нет вхождений последовательности то выполнение команды заменить
не меняет эту
строку.
Б) Нашлось
Эта команда проверяет, встречается ли последовательность в строке исполнителя Редактор. Если она
встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение
«ложь».
Строка исполнителя при этом не изменяется.
Цикл
ПОКА условие
последовательность команд
КОНЕЦ ПОКА
Выполняется, пока условие истинно.
В конструкции:
ЕСЛИ условие
ТО команда1
КОНЕЦ ЕСЛИ Выполняется команда1 (если условие истинно).
ЕСЛИ условие
ТО команда1
ИНАЧЕ команда2
КОНЕЦ ЕСЛИ Выполняется Выполняется команда1 (если условие истинно) или команда2 (если условие ложно).
Напишите сумму цифр строки, полученной в результате применения приведённой ниже программы к строке:
НАЧАЛО
ПОКА нашлось ИЛИ нашлось
ИЛИ нашлось
ЕСЛИ нашлось
ТО заменить
ИНАЧЕ ЕСЛИ нашлось
ТО заменить
ИНАЧЕ ЕСЛИ нашлось
ТО заменить
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
s = ’5’ * 10 + ’7’ * 30 + ’2’ * 50 while ’5’ in s or ’77’ in s or ’222’ in s: if ’5’ in s: s = s.replace(’5’, ’77’, 1) elif ’77’ in s: s = s.replace(’77’, ’7’, 1) elif ’222’ in s: s = s.replace(’222’, ’5’, 1) print(sum((int(x) for x in s)))
Ошибка.
Попробуйте повторить позже
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в
которых и
обозначают последовательности цифр:
А) заменить
Эта команда заменяет в строке первое слева вхождение последовательности на последовательность
Например, выполнение команды заменить преобразует строку
в строку
Если в строке нет вхождений последовательности то выполнение команды заменить
не меняет эту
строку.
Б) Нашлось
Эта команда проверяет, встречается ли последовательность в строке исполнителя Редактор. Если она
встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение
«ложь».
Строка исполнителя при этом не изменяется.
Цикл
ПОКА условие
последовательность команд
КОНЕЦ ПОКА
Выполняется, пока условие истинно.
В конструкции:
ЕСЛИ условие
ТО команда1
КОНЕЦ ЕСЛИ Выполняется команда1 (если условие истинно).
ЕСЛИ условие
ТО команда1
ИНАЧЕ команда2
КОНЕЦ ЕСЛИ Выполняется Выполняется команда1 (если условие истинно) или команда2 (если условие ложно).
Напишите количество цифр полученное в результате применения приведённой ниже программы к строке:
НАЧАЛО
ПОКА нашлось ИЛИ нашлось
ЕСЛИ нашлось
ТО заменить
ИНАЧЕ ЕСЛИ нашлось
ТО заменить
КОНЕЦ ЕСЛИ
ЕСЛИ нашлось
ТО заменить
ИНАЧЕ ЕСЛИ нашлось
ТО заменить
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
s = ’5’ * 10 + ’4’ * 10 + ’2’ * 10 + ’7’ * 10 while ’54’ in s or ’27’ in s: if ’55’ in s: s = s.replace(’55’, ’7’, 1) elif ’22’ in s: s = s.replace(’22’, ’7’, 1) if ’44’ in s: s = s.replace(’44’, ’4’, 1) elif ’77’ in s: s = s.replace(’77’, ’7’, 1) print(s.count(’7’))
Ошибка.
Попробуйте повторить позже
Исполнитель Редактор получает на вход cтроку цифр и преобразует её. Редактор может выполнять две команды, в обеих
командах и
обозначают цепочки цифр.
А) .
Эта команда заменяет в строке первое слева вхождение цепочки на цепочку
. Например, выполнение
команды
преобразует строку в строку
.
Если в строке нет вхождений цепочки , то выполнение команды заменить
не меняет эту строку.
Б) .
Эта команда проверяет, встречается ли цепочка в строке исполнителя Редактор. Если она встречается, то команда
возвращает логическое значение
, в противном случае возвращает значение
. Строка исполнителя при
этом не изменяется.
Цикл
выполняется, пока условие истинно.
Дана программа для редактора:
Какая строка получится в результате применения приведённой выше программы к строке, состоящей из идущих
подряд цифр
? В ответе запишите полученную строку.
Решение руками
Исполнитель будет заменять по четыре единицы на одну (уменьшать количество единиц на ). Тогда
. Столько единиц у нас останется в конце работы алгоритма.
Решение программой
s = ’1’ * 13 while ’1111’ in s: s = s.replace(’1111’, ’1’, 1) print(s)
Ошибка.
Попробуйте повторить позже
Исполнитель Редактор получает на вход cтроку цифр и преобразует её. Редактор может выполнять две команды, в обеих
командах и
обозначают цепочки цифр.
А)
Эта команда заменяет в строке первое слева вхождение цепочки на цепочку
. Например, выполнение
команды
преобразует строку в строку
Если в строке нет вхождений цепочки то выполнение команды заменить
не меняет эту строку.
Б)
Эта команда проверяет, встречается ли цепочка в строке исполнителя Редактор. Если она встречается, то команда
возвращает логическое значение
, в противном случае возвращает значение
. Строка исполнителя при
этом не изменяется.
Цикл
выполняется, пока условие истинно.
Дана программа для редактора:
Какая строка получится в результате применения приведённой выше программы к строке, состоящей из идущих
подряд цифр
? В ответе запишите полученную строку.
Решение руками
На каждом шаге цикла мы заменяем три единицы на одну (уменьшаем количество единиц на ) пока находим
единицы. Тогда на каком-то шаге мы получим
единицы. Но из-за условия на четыре
единицы мы больше не зайдём в цикл и в итоге у нас так и останется три единицы.
Решение программой
s = ’1’ * 15 while ’1111’ in s: s = s.replace(’111’, ’1’, 1) print(s)
Ошибка.
Попробуйте повторить позже
Исполнитель Редактор получает на вход cтроку цифр и преобразует её. Редактор может выполнять две команды, в обеих
командах и
обозначают цепочки цифр.
А)
Эта команда заменяет в строке первое слева вхождение цепочки на цепочку
. Например, выполнение
команды
преобразует строку в строку
Если в строке нет вхождений цепочки то выполнение команды заменить
не меняет эту строку.
Б)
Эта команда проверяет, встречается ли цепочка в строке исполнителя Редактор. Если она встречается, то команда
возвращает логическое значение
, в противном случае возвращает значение
. Строка исполнителя при
этом не изменяется.
Цикл
выполняется, пока условие истинно.
Дана программа для редактора:
Какая строка получится в результате применения приведённой выше программы к строке, состоящей из идущих
подряд строк
? В ответе запишите полученную строку.
Решение 1. Руками
Алгоритм на каждом шаге уменьшает количество строк на
. Поэтому он сможет
раз зайти в цикл и получить
в конце строку
. Снова в цикл мы не зайдем так как не найдётся
.
Решение 2. Программой
n = ’23’ * 14 while ’2323’ in n: n = n.replace(’2323’, ’23’, 1) print(n)
Ошибка.
Попробуйте повторить позже
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в
обеих командах и
обозначают цепочки цифр.
А)
Эта команда заменяет в строке первое слева вхождение цепочки на цепочку
Например, выполнение
команды
преобразует строку в строку
Если в строке нет вхождений цепочки то выполнение команды заменить
не меняет эту строку.
Б)
Эта команда проверяет, встречается ли цепочка в строке исполнителя Редактор. Если она встречается, то команда
возвращает логическое значение
, в противном случае возвращает значение
. Строка исполнителя при
этом не изменяется.
Цикл
выполняется, пока условие истинно.
Какая строка получится в результате применения приведённой ниже программы к строке вида ,
состоящей из
единиц,
троек и
двоек?
s = "1" * 170 + "3" * 100 + "2" * 7 while "11" in s: s = s.replace("112", "4", 1) s = s.replace("113", "2", 1) s = s.replace("42", "3", 1) s = s.replace("43", "1", 1) print(s)
Ошибка.
Попробуйте повторить позже
Исполнитель ОГУРЧИК получает на вход строку цифр и преобразовывает её. ОГУРЧИК может выполнять две команды,
в обеих командах и
обозначают цепочки символов.
1.
2.
Дана программа для исполнителя ОГУРЧИК:
Найдите сумму цифр строки, полученной в результате применения приведённой выше программы к строке
Решение ручками:
Начнем работу нашего алгоритма. Так как в исходной строке мы нашли , то заменим
на
.
Получим строку
На данной итерации цикла строка больше меняться не будет, идем дальше. Вновь встречаем , можем заметить, что
если встречается
, то количество
уменьшается на один, а количество
остается неизменным, тогда можем
выполнить это дейстие еще 29 раз, пока у нас не закончатся
.
Получим строку
Так как у нас уже нет комбинаций , проверяем следующие условия: находим комбинацию
, заменим
на
.
Заметим, что после выполнения данного действия количество
уменьшается на два, а количество
увеличивается на
единицу, при этом все новообразованные
располагаются перед последоватетельностью из
. Повторим замену
на
еще
раза, получим строку:
Проверим. нет ли в строке комбинации — нет, значит, завершаем работу алгоритма.
Запишем в ответ сумму всех цифр полученной после работы алгоритма строки: . Запишем в ответ данное
значение.
Решение прогой:
s = "1" * 10 + "0" * 30 + "3" * 50 while "10" in s or "11" in s or "330" in s: if "10" in s: s = s.replace("10", "1", 1) elif "11" in s: s = s.replace("11", "3", 1) elif "330" in s: s = s.replace("330", "100", 1) print(sum([int(i) for i in s]))
Ошибка.
Попробуйте повторить позже
Исполнитель КЕГЛЯ получает на вход строку цифр и преобразовывает её. КЕГЛЯ может выполнять две команды, в обеих
командах и
обозначают цепочки символов.
1.
2.
Дана программа для исполнителя КЕГЛЯ:
Найдите сумму всех цифр, отличных от , полученной в результате применения приведённой выше программы к
строке
Решение ручками:
Начнем работу нашего алгоритма. Так как в исходной строке мы нашли , то заменим
на
.
Получим строку
На данной итерации цикла строка больше меняться не будет, идем дальше. Вновь встречаем , можем заметить, что
если встречается
, то количество
уменьшается на один, а количество
остается неизменным, тогда можем
выполнить это дейстие еще 299 раз, пока у нас не закончатся
.
Получим строку
Так как у нас уже нет комбинаций , проверяем следующие условия: находим комбинацию
, заменим
на
.
Заметим, что после выполнения данного действия количество
уменьшается на два, а количество
увеличивается на
единицу, при этом все новообразованные
располагаются перед последоватетельностью из
. Повторим замену
на
еще
раз, получим строку:
Проверим. нет ли в строке комбинации — нет, значит, завершаем работу алгоритма.
Запишем в ответ сумму всех цифр, отличных от , полученной после работы алгоритма строки:
. Запишем в ответ
данное значение.
Решение прогой:
s = "1" * 5 + "0" * 300 + "3" * 5 while "10" in s or "11" in s or "330" in s: if "10" in s: s = s.replace("10", "1", 1) elif "11" in s: s = s.replace("11", "3", 1) elif "330" in s: s = s.replace("330", "100", 1) print(sum([int(i) for i in list(s) if int(i) != 3]))
Ошибка.
Попробуйте повторить позже
Исполнитель ПЕЛЬМЕНИ получает на вход строку цифр и преобразовывает её. ПЕЛЬМЕНИ может выполнять две
команды, в обеих командах и
обозначают цепочки символов.
1.
2.
Дана программа для исполнителя ПЕЛЬМЕНИ:
Найдите сумму нечетных цифр строки, полученной в результате применения приведённой выше программы к строке
Решение ручками:
Начнем работу нашего алгоритма. Так как в исходной строке мы нашли , то заменим
на
.
Получим строку
На данной итерации цикла строка больше меняться не будет, идем дальше. Вновь встречаем , можем заметить, что
если встречается
, то количество
уменьшается на один, а количество
остается неизменным, тогда можем
выполнить это дейстие еще 999 раз, пока у нас не закончатся
.
Получим строку
Так как у нас уже нет комбинаций , проверяем следующие условия: находим комбинацию
, заменим
на
.
Заметим, что после выполнения данного действия количество
уменьшается на два, а количество
увеличивается на
единицу, при этом все новообразованные
располагаются после
. Повторим замену
на
еще
раз,
получим строку:
Проверим. нет ли в строке комбинации — нет, значит, завершаем работу алгоритма.
Запишем в ответ сумму нечетных цифр полученной после работы алгоритма строки: . Запишем в ответ
данное значение.
Решение прогой:
s = "3" * 100 + "1" * 55 + "0" * 1000 while "10" in s or "11" in s or "330" in s: if "10" in s: s = s.replace("10", "1", 1) elif "11" in s: s = s.replace("11", "3", 1) elif "330" in s: s = s.replace("330", "100", 1) print(sum([int(i) for i in list(s) if int(i) % 2 != 0]))
Ошибка.
Попробуйте повторить позже
Исполнитель ОРТОЦЕНТР получает на вход строку цифр и преобразовывает её. ОРТОЦЕНТР может выполнять две
команды, в обеих командах и
обозначают цепочки символов.
1.
2.
Дана программа для исполнителя ОРТОЦЕНТР:
Найдите сумму всех цифр , стоящих на нечетных позициях (нумерация индексов начинается с нуля), строки,
полученной в результате применения приведённой выше программы к строке
Решение ручками:
Начнем работу нашего алгоритма. Так как в исходной строке мы нашли , то заменим
на
.
Получим строку
На данной итерации цикла строка больше меняться не будет, идем дальше. Вновь встречаем , можем заметить, что
если встречается
, то количество
уменьшается на один, а количество
остается неизменным, тогда можем
выполнить это дейстие еще 199 раз, пока у нас не закончатся
.
Получим строку
Так как у нас уже нет комбинаций , проверяем следующие условия — находим
, меняем
на
.
Получим строку
Заметим, что после выполнения данного действия количество уменьшается на два, а количество
увеличивается
на единицу (но все появившиеся
ставятся слева). Тогда выполним это действие еще
раз
(так как у нас поделилось с остатком, то
останутся в количестве, равном данному остатку), после этого
получим:
На этом работа алгоритма завершится, ведь больше нет подходящих подстрок.
Запишем в ответ сумму цифр , стоящих на нечетных позициях. Сначала определим индексы всех
: [0, 56] и [58, 112].
Теперь среди этих отрезков находим количество нечетных индексов — оно будет равно
, тогда
общая сумма подходящих нам цифр
равна
.
Решение прогой:
s = "1" * 115 + "0" * 200 + "3" * 55 while "10" in s or "11" in s or "330" in s: if "10" in s: s = s.replace("10", "1", 1) elif "11" in s: s = s.replace("11", "3", 1) elif "330" in s: s = s.replace("330", "100", 1) print(sum([int(s[i]) for i in range(len(list(s))) if int(s[i]) == 3 and i % 2 != 0]))
Ошибка.
Попробуйте повторить позже
Исполнитель ХИ-ХИ получает на вход строку цифр и преобразовывает её. ХИ-ХИ может выполнять две команды, в обеих
командах и
обозначают цепочки символов.
1.
2.
Дана программа для исполнителя ХИ-ХИ:
Найдите произведение цифр строки, для полученной в результате применения приведённой выше программы к строке
Решение ручками:
Начнем работу нашего алгоритма. Так как в исходной строке мы нашли , то заменим
на
.
Получим строку
На данной итерации цикла строка больше меняться не будет, идем дальше. Вновь встречаем , можем заметить, что
если встречается
, то количество
уменьшается на один, а количество
остается неизменным, тогда можем
выполнить это дейстие еще 99 раз, пока у нас не закончатся
.
Получим строку
Так как у нас уже нет комбинаций , проверяем следующие условия: нет ни одного подходящего, значит, завершаем
работу алгоритма.
Запишем в ответ произведение элементов полученной после работы алгоритма строки: . Запишем в ответ
данное значение.
Решение прогой:
s = "1" * 1 + "0" * 100 + "3" * 3 while "10" in s or "11" in s or "330" in s: if "10" in s: s = s.replace("10", "1", 1) elif "11" in s: s = s.replace("11", "3", 1) elif "330" in s: s = s.replace("330", "100", 1) arr = [int(i) for i in s] for i in range(len(arr) - 1): arr[i + 1] *= arr[i] print(arr[-1])