dongfangxu 和zap 是二个好朋友,二个人有变态的嗜好,就是玩字符串。在一连串乱七八糟的字符串中找出自已名字连续出现最多的
次数,谁的次数出现得多,则在另一个人脸上贴一张纸条。他们需要一个裁判来帮他们,同时他们约定。如果二个人名字出现的连续的次数一样多,则dongfangxu胜利。裁判一看字符串,天哪。什么乱七八糟的,数都不好数,因此他向你求助。
输入格式
首先是一个整数T(T<=50),接下来是T行,每行有一个字符串S,S的长度小于100000。
输出格式
求在字符串中输出连续出现次数最多的名字,如果二个连续出现的最多的次数是一样多,比如dongfangxudongfangxuzapzapdongfangxu,
在这里面,dongfangxu和zap连续出现最多的次数都是2次,则输出dongfangxu!。在名字后面加一个!
样例输入
1 dongfaxuzapzap
样例输出
zap!
#include<stdio.h>
#include<string.h>
int count(char line[],char key[])
{
int lenl,lenk,i,j,count=0,max=0;
lenl=strlen(line);
lenk=strlen(key);
for (i = 0; i < lenl; i++) { //判断line的第i个字符开始
for (j = 0; j < lenk; j++) { //是否有连续lenk个字符与key相同
if (line[i + j] != key[j])
{
count=0;
break;
}
}
if (j == lenk) { //如果有,说明匹配到了
i += lenk - 1; //之所以要 -1 ,是因为后面还会有个 i++
count++;
}
if(max<count) max=count;
}
return max;
}
int main()
{
int t,i,j;
scanf("%d",&t);
while(t--)
{
char a[100000];
char d[]="dongfangxu";
char z[]="zap";
int maxd=0,maxz =0;//连续出现的字符串长度
scanf("%s",a);
maxd=count(a,d);
maxz=count(a,z);
if(maxd>=maxz)
printf("dongfangxu!\n");
else
printf("zap!\n");
}
return 0;
}