kmp求最小循环节及最小循环周期

只列出求最小循环节部分

for(int i=1;i<=n;i++)
        {
            int temp=i-next[i];
            if(i%temp==0 && i/temp>1)
                printf("%d %d\n",i,i/temp);
        }

其中i是求前i个字符,i/temp是求重复的部分循环了几次

最小循环节:abcabcabc最小循环节前六位是abc重复两次前九位也是abc重复3次。abccabc这里面就没有最小循环节因为中间有c把两个循环节阻断

猜你喜欢

转载自blog.csdn.net/weixin_42165786/article/details/81608118