//求一个字符串中连续出现次数最多的子串,
//例如:abcbcbcabc,这个串中连续出出次数最多的子串是bc, 它出现了3次。
#include<stdio.h>
#include<string.h>
int main()
{
char ch[100];
while(gets(ch))
{
int i,j,k,max=0,flag=1;
char sh[51];//放置子串
for(j=1;j<strlen(ch);j++)//子串的长度
{
for(i=0;i<strlen(ch);i++)//
{
if(strncmp(&ch[i],&ch[i+j],j)==0)
{
flag++;
for(k=i+2*j;k<strlen(ch);k=k+j)//检查该子串与下一同长度的子串是否相同
{
if(strncmp(&ch[i],&ch[k],j)==0)
flag++;
else
break;
}
if(max<flag)//最大、易主
{
max=flag;
strncpy(sh,&ch[i],j);
sh[j]='\0';
}
flag=1;
}
}
}
if(max==0)//字符串由单个字符构成
{
max=1;
sh[0]=ch[0];
sh[1]='\0';
}
printf("%d %s\n",max,sh);
}
return 0;
}
//c语言初学者伤不起啊
//http://blog.csdn.net/huangkangying/article/details/6443302
求一个字符串中连续出现次数最多的…
最新推荐文章于 2023-01-11 21:45:19 发布