首页 > 代码库 > 查找重复次数最多的子字符串
查找重复次数最多的子字符串
查找重复次数最多的子字符串,借鉴兆芯查找重复次数最多的字符,我们可以进行扩展,查找重复次数最多的子字符串。
基本思想是把重复次数最大记录下来,并记录起始位置;
#include <iostream>
#include <stdio.h>using namespace std;
int mystrlen(char *str)
{
int sum(0);
char *temp=str;
while(*temp!=‘\0‘)
{
++temp;
++sum;
}
return sum;
}
bool contain_sub_str(char *str, char *sub_str)
{
int len1= mystrlen(str);
int len2= mystrlen(sub_str);
int i(0);
if(len1<len2)
return false;
while(i<len2)
{
if( *(str+i)!= *(sub_str+i))
break;
++i;
}
if(i==len2)
return true;
return false;
}
int find_max_repeat(char *str, char *sub_str, int *len)
{
int i(0);
int num(0),start(0),len2(mystrlen(sub_str));
while(*(str+i) !=‘\0‘)
{
if(contain_sub_str(str+i, sub_str)){
int s=i,k=0;
while(contain_sub_str(str+i, sub_str))
{
i+=len2;
++k;
}
if(k>num){
num=k;
start=s;
}
}
else
++i;
}
*len=num;
return start;
}
int main()
{
char str[]="abaabaaacdeeabaabaabaabaeefdefdefdefdsceebd";
int i,j;
i=find_max_repeat(str, "aba", &j);
printf("%d,%d\n",i,j);
i=find_max_repeat(str, "efd", &j);
printf("%d,%d\n",i,j);
return 0;
}
查找重复次数最多的子字符串
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。