您的位置:首页 > 其它

UVa 409 - Excuses, Excuses!

2012-08-23 12:43 435 查看
题意:把包含单词数最多的句子找出来

使用朴素匹配即可,注意大小写之间的转换,还有,样例后输出空行

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int main()
{
int m,n,i,max,flag,count[1000],j,k,l,s=0;
char word[1000][50],sen[1000][200],dd[1000][200];
while(scanf("%d%d",&m,&n)==2)
{
s++;
max=0;
memset(count,0,sizeof(count));
for(i=0; i<m; i++)
scanf("%s",word[i]);
getchar();
for(i=0; i<n; i++)
{
gets(sen[i]);
strcpy(dd[i],sen[i]);
for(j=0; j<strlen(dd[i]); j++)
{
if(isupper(dd[i][j]))
dd[i][j]+=32;
}
for(j=0; j<m; j++)
{
for(k=0; k<strlen(dd[i])-strlen(word[j]); k++)
{
if(dd[i][k]==word[j][0])
{
for(l=0,flag=1; l<strlen(word[j]); l++)
{
if(dd[i][k+l]!=word[j][l])
{
flag=0;
break;
}
}
if(flag==1&&isalpha(dd[i][k+l])==0&&isalpha(dd[i][k-1])==0)
count[i]++;
}
}
}
if(count[i]>max)
max=count[i];
}
printf("Excuse Set #%d\n",s);
for(i=0; i<n; i++)
{
if(count[i]==max)
puts(sen[i]);
}
putchar('\n');
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  im