Skip to content

KMP字符串匹配

假设你要在一段很长的文本里找一个模式串(比如在 "ababcabcacbab" 里找 "abcac")。

普通做法是:

从文本某个位置开始,一位一位比

一旦不匹配,就把模式串整体往右挪一位,再从头开始比

问题在于:

明明前面已经比对过、确定相等的字符,又被重复比较了很多次。

KMP 的想法非常聪明:

当匹配失败时,不要回到模式串的开头,而是跳到“可能继续匹配的位置”。