重复子串
题目链接:重复子串
题目描述

解题思路
详情请见 T J H 大 佬 的 b l o g TJH大佬的blog TJH大佬的blog
code
#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
using namespace std;
string a;
int n,nxt[1000010];
int main()
{
cin>>a;
while(a!=".")
{
n=a.size();
memset(nxt,-1,sizeof(nxt));
nxt[0]=-1;
int i=0,j=-1;
while(i<n)
{
if(j==-1||a[i]==a[j])
j++,i++,nxt[i]=j;
else
j=nxt[j];
}
if(n%(n-nxt[n])==0)
cout<<n/(n-nxt[n])<<endl;
else
cout<<1<<endl;
cin>>a;
}
}

博客介绍了如何使用KMP算法解决寻找字符串中重复子串的问题,引用了TJH大佬的解题思路,并提供了相关题目的链接。
1816





