找出字符串里的循环的算法

来源:百度知道 编辑:UC知道 时间:2024/05/28 02:01:16

输入"vectorvectorvector"
要求输出循环"vector"

输入"123123123"
输出"123"
有什么好算法呢?

我现在的算法是
寻找是否有长度为1的循环
如有则输出
如果没有则
寻找是否有长度为2的循环
依次类推
直到循环长度超过字符串长度的一半

但这样显然效率太低了,请问有什么好一点的算法呢?
kmp不是字符串定位吗?

怎么修改成寻找循环算法啊?

能说一下吗?

第一个数字和第二个比较..看看相等不相等..如相等..再和第三个比较.看看是否相等..一直比下去...这是全都相等的情况..
第二
第一个数和第二个比较..不等..然后和第三个比较看看相等不相等..相等.那么.第二位和第四位比较就是是第三位的下一位比较看看相等示相等..如果相等
那么第一位再和第五位比较.看看相等不相等
这样一直比较就可以得到了.

可以考虑一下KMP算法,滑动窗口算法