Форум » Обработка символьных строк » Поляков Задача 24 №4751 » Ответить

Поляков Задача 24 №4751

Aleksep: Не сходится ответ в задаче. Пытался решить несколькими способами. У меня ответ 202, а на сайте 208.

Ответов - 4

MercuL`: У меня такой же ответ получается. [pre2] s = open('24-181.txt').readline().split('Y') max_ = 0 for i in s: if i.count('.') <= 5: max_ = max(max_, len(i)) print(max_) [/pre2]

Aleksey6819: MercuL` Если использовать Ваш алгоритм, то для такой строки A.AA.AAA.AAAA.AAAAA.YA.AA.AAAAAAA.AAA.AAAA.AAAAA.AAAAAA.AAAA у Вас ответ будет 20, а должен быть 34. Рассмотрим вторую подстроку: A.AA.AAAAAAA.AAA.AAAA.AAAAA.AAAAAA.AAAA A.AA.AAAAAAA.AAA.AAAA.AAAAA.AAAAAA.AAAA A.AA.AAAAAAA.AAA.AAAA.AAAAA.AAAAAA.AAAA

MercuL`: Солгласен, мое решение нкорректное. Я исправил проограмму (возможно, снова не до конца), и на ваш пример теперь ответ получается правильный, но на файлик ответ все еще остается 202. [pre2] # s = open('24-181.txt').readline() s = 'A.AA.AAA.AAAA.AAAAA.YA.AA.AAAAAAA.AAA.AAAA.AAAAA.AAAAAA.AAAA' s = s.split('Y') print(s) max_ = 0 for i in s: if i.count('.') <= 5: max_ = max(len(i), max_) else: ri = i li = i while li.count('.') > 5: li = li[li.find('.')+1:] max_ = max(len(li), max_) while ri.count('.') > 5: ri = ri[:ri.find('.')] max_ = max(len(ri), max_) print(max_) [/pre2]


Aleksey6819: MercuL` Вы подогнали своё решение под известную (короткую) строку. Измените строку на A.AA.AAA.AAAA.AAAAA.YA.AA.AA.AAAAAAA.AAA.AAAA.AAAAA.AAAAAA.AAAA.A.A и Ваш алгоритм даст сбой. Вы вместо 34 получите 26, что будет неправильно. Вторая подстрока: A.AA.AA.AAAAAAA.AAA.AAAA.AAAAA.AAAAAA.AAAA.A.A A.AA.AA.AAAAAAA.AAA.AAAA.AAAAA.AAAAAA.AAAA.A.A A.AA.AA.AAAAAAA.AAA.AAAA.AAAAA.AAAAAA.AAAA.A.A A.AA.AA.AAAAAAA.AAA.AAAA.AAAAA.AAAAAA.AAAA.A.A A.AA.AA.AAAAAAA.AAA.AAAA.AAAAA.AAAAAA.AAAA.A.A A.AA.AA.AAAAAAA.AAA.AAAA.AAAAA.AAAAAA.AAAA.A.A



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