Рассмотрим задачу, которая возникает каждый раз, когда вы делаете ctrl+f
:
Есть большой текст . Нужно найти все вхождения строки в него.
Наивное решение со сравнением всех подстрок длины со строкой работает за . Если текст большой, то длинные слова в нем искать становится очень долго.
Однако существует множество способов решить эту задачу за , два самых распространённых и простых из них: через префикс-функцию и через z-функцию (примечание: не «зи», а «зет»).