Задание 24 ЕГЭ по информатике проверяет тему «обработка текстового файла». Ниже вы найдёте 1 вариант с условием, ответом и разбором, а под ними теория и алгоритм решения этого номера.
Теория к заданию 24 ЕГЭ по информатике: обработка текстового файла
Задание с файлом: нужно написать программу, которая находит фрагмент строки с заданными свойствами.
Что нужно знать
Файл читают целиком в строку, затем обрабатывают её как последовательность символов.
Задачи такого типа решают методом двух указателей или скользящего окна за один проход.
Счётчики вхождений подстроки и отдельных символов обновляют при сдвиге границ окна.
Могут ли подстроки перекрываться, нужно уточнять по условию.
Ответом служит длина найденной последовательности символов.
Приёмы для обработки строки
Читайте файл целиком одной строкой: s = open('24.txt').readline() или read().
Для поиска самой длинной подпоследовательности без повторов ведите два указателя или счётчик текущей длины.
Сброс счётчика происходит там, где условие нарушается; максимум обновляется на каждом шаге.
Если ищется подстрока с ограничением на количество символов, храните счётчики в словаре.
Для поиска повторов используйте сравнение соседних символов: s[i] == s[i−1].
Файл может содержать символ перевода строки в конце, поэтому обрежьте его методом strip.
Длина файла бывает в сотни тысяч символов, поэтому избегайте вложенных циклов по всей строке.
Проверяйте программу на короткой строке, где ответ виден глазами.
Как решать задание 24
Прочитайте файл в одну строку и уберите переводы строк, если они мешают.
Заведите два указателя на начало и конец рассматриваемого окна.
Сдвигайте правую границу, обновляя счётчики вхождений и нужных букв.
Когда условие нарушается, сдвигайте левую границу.
Запоминайте максимальную длину окна, удовлетворяющего условиям.
Разбор примера
Общая схема: найти длину самой длинной цепочки одинаковых символов подряд.
Читаем строку из файла и убираем перевод строки.
Заводим две переменные: текущая длина цепочки (1) и максимальная длина (1).
Идём циклом по индексам от 1 до конца строки.
Если текущий символ равен предыдущему, увеличиваем текущую длину, иначе сбрасываем её в 1.
На каждом шаге обновляем максимум, если текущая длина больше.
После цикла выводим максимум.
Ответдлина самой длинной цепочки
Частые ошибки
Перебирают все пары границ, и программа не успевает отработать.
Считают вхождения подстроки без учёта перекрытий, когда условие их допускает.
Задание 24 входит в ЕГЭ по информатике. На этой странице собраны все варианты
этого номера, которые разобраны на сайте: условие, правильный ответ и разбор решения.
Остальные номера открываются в списке выше, а целиком все задания ЕГЭ по информатике
с ответами собраны на странице предмета.