На этом форуме отвечают на конкретные вопросы. Фраза «я не понимаю, как решать» — это не вопрос. На вопрос «как решить задачу №X» вас отошлют к материалам сайта kpolyakov.spb.ru. За бессвязный поток слов и неспособность формулировать свои мысли — бан.

Если у вас не сходится ответ на какую-то задачу, пожалуйста сразу представляйте свое «правильное» решение.
Программы "заворачивайте" в тэг [pre2]...[/pre2], при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.

Для регистрации на форуме щелкните по ссылке «Вход-регистрация» вверху страницы. В открывшееся окошко «ник» введите свою фамилию на русском языке (например, Иванов). В окошко «пароль» введите придуманный вами пароль, состоящий из латинских букв и цифр. Поставьте галочку в окошке «зарегистрироваться, я новый участник» и нажмите кнопку «ОК».

АвторСообщение



Не зарегистрирован
ссылка на сообщение  Отправлено: 18.06.22 14:52. Заголовок: задача 3464


(№ 3464) (Е. Джобс) Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки символов.
1. заменить (v, w)
2. нашлось (v)
Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Редактор.
Дана программа для исполнителя Редактор:
НАЧАЛО
ПОКА нашлось (333) ИЛИ нашлось(111)
заменить(333, 11)
заменить(111, 3)
КОНЕЦ ПОКА
КОНЕЦ
На вход приведённой ниже программе поступает строка длиной не меньшей 100, состоящая только из единиц. Какое минимальное количество единиц должно быть в исходной строке, чтобы в результате получилось максимально возможное число?
x = '1' * 106
while '333' in x or '111' in x:
x = x.replace('333','11')
x = x.replace('111', '3')
print(x)
вот моя программа , если мы пишем 106 , она выдает 3131331
если пишем 107 она выдает 31313311
Правильный ответ указан 106. Хотя если мы пишем 107 число мы получим больше чем , если бы мы написали 106.
Объясните что не так , пожалуйста

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 1 [только новые]







Сообщение: 48
ссылка на сообщение  Отправлено: 18.06.22 20:38. Заголовок: Вы заменяете все вхо..


Вы заменяете все вхождения подстроки, а нужно только первое слева.
 
x = '1' * 106
while '333' in x or '111' in x:
x = x.replace('333', '11', 1)
x = x.replace('111', '3', 1)
print(x)


Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 517
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет