← Все вопросы

Задание 24 ЕГЭ: обработка символьной строки из файла — типовой шаблон?

Задан 18 месяцев назад706 просмотров3 ответа
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() и линейный проход.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект