Ctrl K

Самый длинный чистый фрагмент

Сложная
Модератор чата проверяет сообщение text по списку запрещённых сочетаний banned. Фрагмент сообщения (подряд идущие символы) считается **чистым**, если ни одно сочетание из banned не встречается внутри него целиком. Верните длину самого длинного чистого фрагмента. Пустой фрагмент тоже чистый, поэтому ответ может быть равен 0.
Пример 1
text="moonbeam", banned=["oo", "ea"] → 4

Чистый фрагмент не может содержать обе o сразу (это oo) и пару ea. Самый длинный такой кусок — onbe: слева к нему добавится oo, справа — ea. Ответ 4.

Пример 2
text="aaaa", banned=["a"] → 0

Запрещена сама буква a, поэтому чистым остаётся только пустой кусок.

Пример 3
text="river", banned=["xyz"] → 5

Запрещённого слова в тексте нет — подходит весь текст.

Ограничения
  • 1 ≤ len(text) ≤ 10⁵
  • 1 ≤ len(banned) ≤ 10⁵
  • 1 ≤ len(banned[i]) ≤ 10
  • text и все banned[i] состоят из строчных латинских букв
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиБлоки слов в любом порядке СложнаяКратчайший отрезок со всеми буквами СложнаяВсе способы расставить пробелы СложнаяСклеить в палиндром СложнаяМедиана в скользящем окне Сложная
загружаем Python…
Вход
text="moonbeam", banned=["oo", "ea"]
Ожидается
4

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 78 тестов на сервере, включая скрытые.