← к оглавлению

Префикс-функция (основа КМП) — пошагово

π[i] — длина максимального собственного супрефикса строки S[:i] (подстроки, которая одновременно префикс и суффикс). Это ядро алгоритма Кнута-Морриса-Пратта.

Как читать. i — текущая позиция, k — длина кандидата-супрефикса (он же указатель сравнения). Если S[i]≠S[k] — откатываем k = π[k−1] (прыжок по супрефиксам). Если совпало — k растёт. π[i]=k.
i (текущий символ) k (сравниваем с S[k]) совпадение