WOJ1098-Dongfangxu&zap

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;
} 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值