Как решать задание 24 ЕГЭ по информатике (обработка строки из файла)?
Задание 24 даёт файл с одной длинной строкой из букв, и надо найти, например, самую длинную цепочку подряд идущих одинаковых символов или количество каких-то подстрок. Как обрабатывать строку из файла на Python для ЕГЭ?
2 ответа
Задание 24 — обработка одной длинной строки из файла. Частые формулировки: «найдите длину самой длинной цепочки одинаковых символов», «сколько раз встречается двухсимвольное сочетание», «максимальная серия чередующихся букв».
Чтение:
s = open('24.txt').read().strip()
Самая длинная серия одинаковых символов:
best = 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)
Подсчёт вхождений подстроки (например 'AB'):
print(s.count('AB'))
Но учти: count не считает перекрывающиеся вхождения ('AAA' даёт одно 'AA', а не два). Если нужны перекрытия — иди циклом по i и сравнивай срезы s[i:i+2].
Частые ошибки:
- забыть
.strip()— лишний перенос строки портит подсчёт; - неверная инициализация счётчика серии (начинай с 1, не с 0);
- перепутать «подряд идущие» (серия) и «всего вхождений»;
- проблема перекрывающихся подстрок при
count.
Метод стандартный — главное точно понять, что считаем: серию подряд или общее число.
Совет про перекрытия: если ищешь, сколько раз встречается, скажем, 'ABA' и они могут наезжать друг на друга, str.count обманет. Считай так:
cnt = sum(1 for i in range(len(s)-2) if s[i:i+3]=='ABA')
И обязательно убирай невидимые символы в конце файла через .strip() — иначе серия или подсчёт собьются на единицу. Эти две мелочи — частая причина «почти верного» ответа.