Назад к задачам
Junior — Senior
9

Функция, возвращающая позиции вхождения подстроки в строку

Компании, где спрашивали:

А-стор
Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

Разработайте функцию, принимающую две строки — основную строку source и подстроку pattern. Функция должна вернуть массив (list) индексов, начиная с нуля, где pattern встречается в source. Если подстрока не найдена, возвращайте пустой массив.

Пример:

find_occurrences("ababa", "aba")  # → [0, 2]

Требования:

  • Входные данные — любые строки, включая пустые.
  • Поиск должен учитывать перекрывающиеся вхождения.
  • Алгоритм должен работать за линейное время относительно длины source в среднем случае.