循环节相关。
解决此类问题一般有两种方法。
KMP
我们知道,对于 (KMP) 算法而言,(nxt[i]) 要记录的是区间 ([1,i-1]) 的最长共同前后缀。那么对于 (nxt[]) 中的 (i),若符合 (i) % (( i - nxt[i] ) == 0) 且 (nxt[i] != 0) , 则说明字符串循环,而且循环节长度为: (i-nxt[i])。
哈希
把串复制两遍,设枚举到的循环节为 (x) ,匹配 ([L,R-x-1]) 与 ([L+x+1,R]) 是否相等。因为 ([L+x+1,R-x-1]) 为重复,所以实则就是匹配了 ([L,L+x]==[L+x+1,L+2x+1]),以此类推。