Назад к темам

Поиск подстроки и подсчёт вхождений

Тренироваться
1

Поиск подстроки и подсчёт вхождений

Зачем это в ЕГЭ.
Задание 24 в ЕГЭ по информатике проверяет умение работать с текстовыми строками и подстроками. Оно оценивается в 3 первичных балла и часто встречается в реальных вариантах ФИПИ. Основная задача — найти количество вхождений подстроки в строку или выполнить замену по определённым условиям.

Главная идея.
Суть задачи заключается в эффективном поиске и обработке подстрок в тексте. Ключ к решению — умение использовать циклы и строковые операции для анализа текста и подсчёта вхождений.

Алгоритм (чеклист).
1. Прочитать строку и подстроку, с которой нужно работать.
2. Использовать цикл для последовательного анализа строки.
3. Проверять, совпадает ли текущий фрагмент строки с подстрокой.
4. Если совпадение найдено, увеличить счётчик вхождений.
5. После завершения цикла вывести результат.
6. Проверить корректность работы на краевых случаях (например, пустая строка или подстрока).

Опоры (кратко).
- Длина строки: len(s)len(s).
- Срез строки: s[i:j]s[i:j].
- Метод поиска подстроки: s.find(sub)s.find(sub).
- Метод подсчёта вхождений: s.count(sub)s.count(sub).

Пример 1 (подсчёт вхождений)
Шаг 1. Дана строка: "abacaba" и подстрока: "aba".
Шаг 2. Инициализировать счётчик вхождений: count=0count = 0.
Шаг 3. Пройти по строке с шагом 1: для ii от 0 до len(s)len(sub)len(s) - len(sub).
Шаг 4. Если s[i:i+len(sub)]==subs[i:i+len(sub)] == sub, увеличить countcount на 1.
Шаг 5. После цикла вывести count=2count = 2.

Пример 2 (замена подстроки)
Шаг 1. Дана строка: "hello world" и подстрока: "world".
Шаг 2. Найти позицию подстроки: pos=s.find(sub)pos = s.find(sub).
Шаг 3. Если pos!=1pos != -1, заменить подстроку на "universe".
Шаг 4. Результат: "hello universe".

Типичные ошибки.
1. Неправильный учёт длины подстроки. При срезе строки забывают добавить длину подстроки.
2. Игнорирование краевых случаев. Не проверяют пустые строки или подстроки.
3. Ошибка в индексации. Путают индексы при работе с циклами.
4. Неправильное использование методов. Например, используют findfind вместо countcount.
5. Неэффективный алгоритм. Используют вложенные циклы, что увеличивает сложность.

Дальше.
Переходи к задачам на обработку строк с использованием регулярных выражений.

Теория изучена?

Закрепи знания на практике — переходи к тренировке!

Тренироваться