摘要:
原题链接:http://poj.org/problem?id=2406 首先给出一个结论:对于给定长度为n的字符串,如果n % (n - next[n]) == 0,那么,n - next[n] 为字符串的最小周期(最小循环节)。 这里给出我自己的证明: 设字符串为s,长度为n,为便于叙述下标从1开始。 现在有next[n] = j,从next数组的定义出发我们知道s[n-j-j+1...n-j] = s[n-j+1...n],如下图: 显然灰色“区域2”为s[n-j-j+1...n-j],而由kmp匹配的过程可知,灰色的两个区域——区域2’和区域2是相等的,好了,继续重复这个步... 阅读全文