给定一个字符串,求出其最长的重复子串
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;
}
如字符串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;
}
相关文章推荐
- 给定一个字符串,求出其最长的重复子串。
- 给定一个字符串,求出其最长的重复子串的长度
- 【每日面试题】给定一个字符串,求出其最长的重复子串
- 给定一个字符串,求出其最长的重复子串。
- 给定一个字符串,求出其最长的重复子串。
- 求给定的某一个字符串中的最长的没有重复字符的子串的长度
- 给定一个字符串,返回字符串中没有重复字符的最长子串的长度
- 给定一个字符串,输出最长的重复子串
- 每日面试题:给定一个字符串,求出其最长的重复子串
- 给定一个字符串,求出其最长的重复子串
- 给定一个字符串,找到最长的子串的长度没有重复字符
- 给定一个字符串,输出最长的重复子串
- 求给定字符串中最长重复子串
- 求一个字符串的最长无重复字母的连续子串
- 求一个字符串当中的最长重复子串
- 定义一个栈的数据结构,实现min函数,要求push,pop,min时间复杂度是0(1);找出字符串中的最长子串,要求子串不含重复字符,时间复杂度是O(n);
- 【字符串问题】求一个字符串中重复出现的最长的子串
- 算法题目二:寻找最长重复子序列(4) 求给定字符串重复最长的子串
- 在一个字符串中寻找到最长重复子串(1)
- 找出一个字符串中出现的重复的最长的字符子串