题目描述

Tom马上就要参加“Reach-Top”信息学竞赛啦,但和Tom比拼的都是一群大神,Tom很想成为Top 1,但他实力一定不如他们。他最终想出一个邪恶的办法:在百度上搜索题解。
ZZN知道Tom的计谋后,立刻着手研发“防作弊系统 V1.0”,如果在Tom的任务管理器(n项进程)里发现含有“Browser”(不能更改字母大小写)的项目,则立刻结束这项进程任务。但ZZN实在是太忙啦,请你来替代他制作这个防作弊系统吧。

输入

第一行n,(1≤n≤20000(会有顶格数据))
第二行开始是n行字符串(1≤字符串长度≤100,字符串中可能有空格),表示Tom当前的n项进程。

输出

Tom的进程中如果含有“Browser”的进程,则输出“ZuoBi!!!”
否则输出“TingHua!”。

样例输入

3
Reach-Top
QQBrowser
Bloodshed Dev-C++

样例输出

ZuoBi!!!

样例输入2

6
Reach-Top
Word
Bloodshed Dev-C++
360browser
QQbrowser
DianNaoGuanJia

样例输出2

TingHua!

提示

样例2中虽然出现了“browser”,但是首字母没有和标准的“Browser”完全相同,所以输出为“TingHua!”。
请考虑程序优化。测试数据将会非常大。
该题为本人撰题,真的水题一发(不知道当时自己咋想的,出这么简单),该题主要考察查找子串。代码呈现如下,细节内附注释。

#include<bits/stdc++.h>
using namespace std;
int sum=0;
int f(char *jc,char *b)//查找字串函数
{
    int n,m=7;//m=7是因为"Browser"长度为7
    n=strlen(jc);//该字符串长度
    for(int i=0;i<=n-m;i++)
    {
        if(strncmp(jc+i,b,m)==0)sum++;//查找到字串,累加
    } 
}
int main()
{
    char jc[101],b[8]="Browser";
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>jc;//输入字符串
        f(jc,b);//查找子串操作
    }
    if(sum==0)cout<<"TingHua!";//若在所有字符串中没有找到"Browser"输出"TingHua!"
    else cout<<"ZuoBi!!!";//若找到了输出"ZuoBi!!!"
}
最后修改:2021 年 08 月 16 日 03 : 40 PM
如果觉得我的文章对你有用,请随意赞赏