当前位置:编程学习 > C/C++ >>

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++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,