說到求字串的最小迴圈節就不得不提及kmp演算法
因為要求迴圈節,還需要用到kmp演算法的next陣列
kmp演算法本來是用來求乙個串中是否包含另乙個串,或者說乙個串是否為另乙個串的子串
kmp演算法詳解,看不懂算我輸
如果kmp演算法理解其原理了,那麼這道題也是非常簡單的
用了kmp中的next陣列
結果直接是strlen(s)-next【strlen(s)】
#include#include#includeusing namespace std;
int nextnum[1000010];
int main()
{ string s;
int step=1,n;
while(cin>>s)
{int len=s.size();
memset(nextnum,0,sizeof(0));
int i=0,j=1;
while(j
kmp求最小迴圈節
kmp最小迴圈節 迴圈週期 定理 假設s的長度為len,則s存在最小迴圈節,迴圈節的長度l為len next len 子串為s 0 len next len 1 1 如果len可以被len next len 整除,則表明字串s可以完全由迴圈節迴圈組成,迴圈週期t len l。2 如果不能,說明還需要...
kmp求最小迴圈節
kmp最小迴圈節 迴圈週期 定理 假設s的長度為len,則s存在最小迴圈節,迴圈節的長度l為len next len 子串為s 0 len next len 1 1 如果len可以被len next len 整除,則表明字串s可以完全由迴圈節迴圈組成。迴圈週期t len l。2 如果不能,說明還需要...
KMP求最小迴圈節講解
kmp最小迴圈節 迴圈週期 定理 假設s的長度為len,則s存在最小迴圈節,迴圈節的長度l為len next len 子串為s 0 len next len 1 1 如果len可以被len next len 整除,則表明字串s可以完全由迴圈節迴圈組成,迴圈週期t len l。2 如果不能,說明還需要...