KMP (next数组的性质及证明)

Posted 勿忘初心0924

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了KMP (next数组的性质及证明)相关的知识,希望对你有一定的参考价值。

性质:如果len%(len-next[len-1])==0,则字符串中必存在最小循环节,且循环次数即为len/(len-next[len-1]);

证明:在前len个字符组成的字符串,存在最小循环节k,那么next[len-1]=len-k;为什么呐?因为next数组的定义就是最大前后缀相同的子串的长度,len的总长度减去最小循环节,比如有3个循环节,减去一个剩下两个,就是最大循环节)那么循环次数就是len/(len-next[len-1]);因为len-next[len-1]=k;所以得出公式;

 

以上是关于KMP (next数组的性质及证明)的主要内容,如果未能解决你的问题,请参考以下文章

KMP的妙用(利用next数组寻找字符串的循环节)

kmp算法

经典算法——KMP,深入讲解next数组的求解

KMP算法及拓展KMP算法

经典算法——KMP,深入讲解next数组的求解

经典算法——KMP,深入讲解next数组的求解