← Все вопросы
Задание 24 ЕГЭ: обработка символьной строки из файла — типовой шаблон?
12
В 24-м дан текстовый файл с одной длинной строкой из букв, и надо найти, например, максимальную длину цепочки подряд идущих одинаковых символов или подстроку по условию. Каждый раз заново изобретаю велосипед. Есть универсальный каркас на питоне?
3 ответа
14
✓ Принятый ответ — помог автору
Читаешь строку, идёшь по ней одним проходом и держишь текущую длину серии и максимум:
with open('24.txt') as fp:
s = fp.readline().strip()
best = 1
cur = 1
for i in range(1, len(s)):
if s[i] == s[i - 1]: # условие серии — меняешь под задачу
cur += 1
best = max(best, cur)
else:
cur = 1
print(best)
Под конкретное условие меняешь только проверку в if. Главные грабли: не забудь .strip() (иначе в строке окажется символ перевода строки и испортит ответ) и обнуляй cur правильно — на 1, а не на 0.
Ришат Нурутдинов strip забывал постоянно, вот где собака зарыта 🙏 · 18 месяцев назад
7
Один проход с двумя переменными cur и best. И обязательно strip() после readline.
3
s = open('24.txt').read().strip() и линейный проход.
Ваш ответ
Войдите, чтобы ответить на вопрос.