2167 - zhaoweijie12火星一万年
现在zhaoweijie12要写一篇论文探究如何从火星回到地球,于是他Google了论文题目,但是返回了很多结果。zhaoweijie12不能一一查看。于是他假设,如果论文的标题中有一个单词是关键词(大小写也要一致),那么这篇论文对他是有用的。
现在zhaoweijie12需要从搜索结果中找到这些他认为有用的论文,那么这些论文有多少呢?
Input
多组测试数据,输入首先是一个整数T表示测试数据组数 (T <= 10)
每组数据开始为一个整数N(N <= 100),表示检索到的论文数
接下来1行是zhaoweijie12搜索的关键词,长度不超过20,只包括小写字母和大写字母
接下来N行,每一行是一个论文的标题,长度不超过100,只包括小写字母、大写字母和空格
Output
每组数据输出一个整数M,表示zhaoweijie12认为有用的论文数。
如果没有一篇论文的标题包含有关键词,则输出“Do not find”(不包括引号)
Examples
Input
2 3 Mars stay Mars forever how to return fromMars how to return from Mars 2 rocket white holes Pikachu get daze
Output
2 Do not find
Solution C
#include<stdio.h> #include<string.h> #include<math.h> int main() { int n,i,t,flag=0,num=0,len,j,k,l; char s[100][105],s1[25],temp[25]; scanf("%d",&t); for(i=0;i<t;i++) { num=0; scanf("%d",&n); getchar(); gets(s1); for(j=0;j<n;j++) gets(s[j]); for(j=0;j<n;j++) { len=strlen(s[j]); k=0; for(l=0;l<=len;l++) { if(s[j][l]!=' '&& s[j][l]!='\0') temp[k++]=s[j][l]; else { temp[k]='\0'; if(strcmp(temp,s1)==0) num++; k=0; } } } if(num==0) printf("Do not find\n"); else printf("%d\n",num); } return 0; }
Solution C++
#include <iostream> #include <stdio.h> #include <string.h> using namespace std; char t[25]; char f[105]; bool judge(){ char word[105];int j = 0; int len = strlen(f); for (int i = 0; i <= len; i++){ if(isalpha(f[i])){ word[j++] = f[i]; } else{ word[j] = '\0'; if(strcmp(t,word) == 0){ return 1; } j = 0; } } return 0; } int main() { //freopen("zhaoweijie12.in", "r", stdin); //freopen("zhaoweijie12.out", "w", stdout); int tst,n,cnt; scanf("%d", &tst); for (int i = 1; i <= tst; i++){ cnt = 0; scanf("%d", &n);getchar(); gets(t); for (int j = 1; j <= n; j++){ gets(f); if(judge()){ cnt++; } } if(cnt == 0){ puts("Do not find"); } else{ printf("%d\n", cnt); } } return 0; }