您的位置:首页 > 其它

给定一个字符串,求出其最长的重复子串

2014-09-12 16:29 429 查看
题目:给定一个字符串,求出其最长的重复子串

如字符串abcdabcabcd,求的最长重复子串为abcd

代码:

void LongChar(char* str)

{

if(str==NULL)

return;

int max=0;

int first=0;

int count=0;

for(int i=1;i<strlen(str);i++)

for(int k=0,j=0;j<strlen(str)-i;j++)

{

if(str[j]==str[i+j])k++;

else

k=0;

if(k>max)

{

max=k;

first=j-k+1;

}

}

if(max>0)

{

cout<<"long:"<<max<<endl;

for(;count<max;count++)

cout<<str[first+count];

cout<<endl;

}

}

int main()

{

char* str="abcdabcabcd";

LongChar(str);

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: