天天看点

[kmp例题] poj2406 Power Strings

题意:求出字符串的最大循环次数,例如abababab是4

我们考虑求next数组时,上下两个字符串不重叠的部分长度为t = len - next[len]

观察重叠部分,则下方字符串的[1,t] = 上方的[t+1,2t], 下方字符串的[t+1,2t] = 上方的[2t+1,3t], ...

如果len - t是t的整数倍,则可以得到字符串循环节的长度为t,否则没有循环节。