Форум » Обработка символьных строк » 24 - 215 Не сходится с ответом » Ответить

24 - 215 Не сходится с ответом

Anvikm: Добрый день! Не сходится с ответом, у меня в ответе 183, у вас 164 [pre2]import re f=open('24-215.txt') s=f.read().strip() a=re.findall('(?:[\D][\d])+',s) print(max(a,key=len)) print(len(max(a,key=len))//2) [/pre2]

Ответов - 6

MercuL`: Честно говоря, абсолютно не понимаю ваше решение, так что ошибку не смог найти. Однако вот решение, выдающее правильный ответ: [pre2] s = open('24-215.txt').readline() for i in '123': s = s.replace(i, '*') for i in 'ABC': s = s.replace(i, '!') s = s.replace('*!*', '#') in_ = '#' max_ = 0 while 0 == 0: if in_ in s: max_ = len(in_) in_ += '#' else: break print(max_) [/pre2]

Anvikm: Ошибки нет в моём решении, я вам и цепочку вывела, показала. Все дело в том, что условия как написали выше, разные. Поправить условие надо. Сейчас посмотрела на сайте, еще не правили условие. Это решение с помощью регулярных выражений. Планирую скоро отправить Константину Юрьевичу.

Zay-U: Тоже столкнулась с этой задачей. Ответ 183. В вордовском файле условие «буква + цифра». MercuL` вы ищите «цифра + буква + цифра» Потому и ответы разные. Решение предложенное на сайте не соответствует условию в ворде! Условие не соответствует ответу. Исправьте, пожалуйста


LE: У меня тоже получилось в ответе 183 (хотя на сайте ответ указан 164). Вот 2 способа моего решения: [pre2] s=open(r'D:\ЕГЭ2023\24data\24-215.txt').readline() s = s.replace('B','A') s = s.replace('C','A') s = s.replace('2','1') s = s.replace('3','1') s = s.replace('A1','*') #заменили "букву+цифру" на "*" и затем найдем максим.длину подряд идущих * maxd = 0 d = 0 for i in range(len(s)): if s[ i]!='*': #если текущей символ не является *, то "сбрасываем" счетчик длины текущей последовательности из * d=0 else: #иначе увеличиваем на 1 счетчик длины текущей последовательности и находим максимум между maxd и d d = d + 1 maxd = max(maxd,d) print(maxd) #2-ой способ (продолжение после replace) s=s.replace('A',' ').replace('1',' ') print(max(map(len,s.split()))) [/pre2]

Anvikm: Если решать для условия "цифра+буква+цифра", то получается 164. [pre2]import re f=open('24-215.txt') s=f.read().strip() a=re.findall('(?:[\d][\D][\d])+',s) print(max(a,key=len)).[/pre2] print(len(max(a,key=len))//3)

Anvikm:



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