|
Отправлено: 09.03.21 15:07. Заголовок: 12_3463
(№ 3463) (Е. Джобс) Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки символов. 1. заменить (v, w) 2. нашлось (v) Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Дана программа для исполнителя Редактор: НАЧАЛО ПОКА НЕ нашлось (><) заменить(>1, 3>) заменить(>2, 2>) заменить(>3, 1>) заменить(3<, <1) заменить(2<, <3) заменить(1<, <2) КОНЕЦ ПОКА КОНЕЦ На вход приведённой ниже программе поступает строка, начинающаяся с символа «>», затем со-держащая 20 цифр 1, 15 цифр 2 и 40 цифр 3, расположенных в произвольном порядке и оканчивающаяся символом «<». Определите максимальную возможную сумму числовых значений цифр строки, получившейся в результате выполнения программы. Так, например, если результат работы программы представлял бы собой строку, состоящую из 50 цифр 4, то верным ответом было бы число 200. На сайте ответ 145. А получается 130. s = '>'+'1'*20+'2'*15+'3'*40+'<' while '><' not in s: s = s.replace('>1','3>',1) s = s.replace('>2','2>',1) s = s.replace('>3','1>',1) s = s.replace('3<','<1',1) s = s.replace('2<','<3',1) s = s.replace('1<','<2',1) s=s.replace('><','') sm = 0 for ch in s: sm +=int(ch) print(sm)
|