求一个字符串中连续出现次数最多的字串

int cmptime(char *p,char *q,int n)
{
int times=0,i;
int lenp=strlen(p);
int lenq=strlen(q);
if(lenp<n||lenq<n) return 0;
char *tq=q;
while(lenq>=n)
{
for(i=0;i<n;i++)
{
if(p[i]!=tq[i])
break;
}
if(i<n) return times;
else
{
times++;
tq=tq+n;
lenq=lenq-n;
}
}
return times;
}
int lgstrtime(char *str)
{
int mtime=1;
int len=strlen(str);
int tmp;
int ansi=0,ansj=1;
for(int i=0;i<len;i++)
{
for(int j=1;j<=len-1-i;j++)
{
tmp=cmptime(str+i,str+i+j,j)+1;
if(tmp>mtime)
{
mtime=tmp;
ansi=i;
ansj=j;
}
}

}
for(int i=0;i<ansj;i++)
cout<<str[ansi+i];
cout<<endl;
return mtime;
}
int main()
{
char str[]="abc";
cout<<lgstrtime(str);
system("pause");
return 0;
}

posted @ 2012-08-11 15:59  wuzhibin  阅读(214)  评论(0)    收藏  举报