UVa409 - Excuses, Excuses!
#include <cstdio> #include <cctype> #include <cstring> int main() { int num[1000],maxnum; char word_list[1000][100]; char excuse[1000][100]; char s[1000][100]; int i,j,k,l; int cas=1; int n,m; while(scanf("%d %d",&m,&n)!=EOF) { for(i=0;i<m;++i) scanf("%s",word_list[i]); getchar(); for(i=0;i<n;++i) { gets(excuse[i]); strcpy(s[i],excuse[i]); } for(i=0;i<n;++i) { int len=strlen(s[i]); for(j=0;j<len;++j) { if(isupper(s[i][j])) s[i][j]=s[i][j]-'A'+'a'; } num[i]=0; } maxnum=0; for(i=0;i<m;++i)//word_list { for(j=0;j<n;++j)//excuse { int len=strlen(s[j])-strlen(word_list[i])+1; for(k=0;k<len;++k) { if(s[j][k]==word_list[i][0]) { int flag=1; for(l=0;l<(int)strlen(word_list[i]);++l) { if(word_list[i][l]!=s[j][k+l]) { flag=0; break; } } if(flag==1&&!isalpha(s[j][k-1])&&!isalpha(s[j][k+l])) num[j]++; } } if(num[j]>maxnum) maxnum=num[j]; } } printf("Excuse Set #%d\n",cas++); for(i=0;i<n;++i) { if(maxnum==num[i]) printf("%s\n",excuse[i]); } printf("\n"); } return 0; }
补充:软件开发 , C++ ,