Форум » Выполнение и анализ алгоритмов для исполнителей » ege12-372 » Ответить

ege12-372

runakarma12: Мне немного стыдно, но по какой-то причине, я не могу решить эту задачу... Не понимаю в чём у меня ошибка. Задача: Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки символов. заменить(v, w) нашлось(v) Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Дана программа для Редактора: ПОКА НЕ нашлось (00) заменить (033, 1302) заменить (03, 120) заменить (023, 203) заменить (02, 20) КОНЕЦ ПОКА На вход программе поступает строка, содержащая два нуля – на первом и на последнем местах. После выполнения данной программы получилась строка, содержащая 520 единицы, 786 двоек и 115 троек. Какое наибольшее количество двоек могло быть в исходной строке? [pre2] def interpreter(s): while '00' not in s: s = s.replace('033', '1302', 1) s = s.replace('03', '120', 1) s = s.replace('023', '203', 1) s = s.replace('02', '20', 1) return s given_3 = 520 for j in range(i-115, -1, -1): s = '0' + '33' * 115 + '23' * (given_3-115) + '2'*j + '0' ans = interpreter(s) if ans.count('1') == 520 and ans.count('2') == 786 and ans.count('3') == 115: print(s.count('2')) [/pre2]

Ответов - 0



полная версия страницы