#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int n, m;
int num[40];
char str[30][80];
char s[30][100];
int cmp(char ch) {
if((ch>= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))
return 1;
else
return 0;
}
int main()
{
int maxn;
int q = 1;
while(scanf("%d%d", &n, &m) != EOF) {
getchar();
for(int i = 0; i < n; i++){
scanf("%s", str[i]);
// printf("%s\n", str[i]);
}
getchar();
memset(num, 0, sizeof(num));
maxn = 0;
for(int i = 0; i < m; i++) {
char ch[100];
gets(s[i]);
// printf("aaaaaaaaaaa%s\n", s[i]);
int len = strlen(s[i]);
for(int j = 0; j < len; j++) {
int a = 0;
while(cmp(s[i][j])) { //用while很好的实现了句子中单词的提取,
if(s[i][j] >= 'A' && s[i][j] <= 'Z')
ch[a++] =s[i][j] + 32;
else
ch[a++] = s[i][j];
j++;
}
if(a > 0) { //一个单词被提取出来。
int k;
ch[a] = '\0';
// printf("\n22222%s\n", ch);
for(k = 0; k < n; k++) { //查找是否有关键字。
if(strcmp(ch, str[k]) == 0)
break;
}
if(k < n) //检查是否查到关键字。
num[i]++;
}
}
maxn = max(maxn, num[i]);
}
printf("Excuse Set #%d\n", q++);
for(int i = 0; i < m; i++)
if(num[i] == maxn)
printf("%s\n", s[i]);
printf("\n");
}
return 0;
}
poj 1598 句子中提取单词
最新推荐文章于 2022-06-24 12:37:59 发布