题意:给一个字符串,求长度最短的循环节。
题解:很经典的KMP的next数组的应用; 因为next数组代表模板串的最大公共前后缀,因此如果该字符串有循环节的话,那么从下标 next[len-1] 到 len-1 的这一段子串就代表了最短的循环节(不怎么明白的话可以求几个诸如abcabc、ababab 字符串的next数组出来研究下)。详见代码:
1 #include
2 #include
3 #include
4 #include
5 #include
6 #include <set>
7 #include
8 #include
9 #include