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

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

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

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



Не зарегистрирован
ссылка на сообщение  Отправлено: 26.04.22 21:12. Заголовок: Задача 198 №24


Текст задачи: 198) Текстовый файл 24-197.txt содержит строку из заглавных латинских букв X, Y и Z, всего не более чем из 106 символов. Определите максимальное количество идущих подряд троек символов X*Y или Z*Y, где * обозначает один любой символ.
Моя программа:
 

f = open('24-197.txt')
s = f.readline()
s = s.replace('XXY','1')
s = s.replace('XYY','1')
s = s.replace('XZY','1')
s = s.replace('ZYY','1')
s = s.replace('ZXY','1')
s = s.replace('ZZY','1')
s = s.replace('X',' ')
s = s.replace('Y',' ')
s = s.replace('Z',' ')
print(max(map(len,s.split())))


получилось 19, не сошлось с ответом на сайте.

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


Администратор




Сообщение: 3508
ссылка на сообщение  Отправлено: 26.04.22 21:19. Заголовок: Попробуйте вот такую..


Попробуйте вот такую строку:
s = "XZYYXYY"
Ваш ответ 1, а на самом деле - 2.

___________________________________________________
Имей мужество пользоваться собственным умом. (И. Кант)
Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 31
ссылка на сообщение  Отправлено: 03.05.22 03:28. Заголовок: Вопрос по условию к данной задаче 24 номер 198


Здравствуйте, подскажите пожалуйста в данной строке s = "XZYYXYY" , мы считаем тройки XZY это 1, далее все же ZYY -2 так ? то есть в последовательности из 4 символов может быть 2 тройки, я правильно понимаю? Или если мы нашли тройку XZY далее смотрим YXY?
Поясните пожалуйста в чем недоработка
 
k=0
m=0
with open('24-197.txt', 'r') as f:
s=f.readline()

i=0
while i <(len(s)-2):

if (s[ i]=="X" and s[ i+2]=="Y" or s[ i]=="Z" and s[ i+2]=="Y") :
k=k+1

m=max(k,m)

i=i+3
else:
k=0
i=i+1
print(m)


Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Сообщение: 3521
ссылка на сообщение  Отправлено: 06.05.22 15:34. Заголовок: elpov06 пишет: Или е..


elpov06 пишет:
 цитата:
Или если мы нашли тройку XZY далее смотрим YXY?

Именно так. Тройки не перекрываются.
 цитата:
Поясните пожалуйста в чем недоработка

Вот строка, на которой ваша программа выдает неверный ответ: s = 'XZYYZYY'. Вы поймали тройку XZY, а цепочка наибольшей длины ZYYZYY начинается с первой Z, которая уже включена в первую тройку и вы не проверяете последовательности, которые с нее начинаются.

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

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