KMP能计算一个字符串的每个位置前最长公共前缀后缀 扩展KMP可以用来计算两个字符串间的最长公共前缀后缀的…… 不过为了计算这个需要绕些弯路 已知字符串$S$和$P$,$S$的长度为$n$,$P$的长度为$m$ 扩展KMP实际是计算$E$数组,设$E[i]$为字符串$S[i..n-1]$与字符串$P$的最大公共前缀 尝试数学归纳法 $E[0]$显然只能直接依次比对,因为什么信息都没有 假设$E[0]\sim E[i-1]$都计算出来了,现在计算$E[i]$ 不妨= =,利用$E[i-1]$的信息…