UVA 409 Excuses(借口)

来源:互联网 发布:js防水涂料配合比 编辑:程序博客网 时间:2024/05/21 10:15

分析:字典<set>集合存储,之后count函数使用;

本题的理念是对的,但有个地方总是存在格式问题,WA数次,一跪再跪,醉了


#include <cstdio>#include <string>#include <set>#include <iostream>#include <sstream>#include <cstring>#include <cctype>using namespace std;int main(){    string str;    string cun[25];    int a[25];    int n,m;    int kase=1;    while (scanf("%d%d",&n,&m)!=EOF)    {        set<string>dict;        for (int i=0;i<n;i++)        {            cin>>str;            dict.insert(str);        }//建立字典        string buf;        memset(a,0,sizeof(a));        getchar();        for (int i=0;i<m;i++)        {            string str1;            getline(cin,str);            cun[i]+=str;            for (int j=0;j<str.size();j++)               if (str[j]>='A'&&str[j]<='Z'||str[j]>='a'&&str[j]<='z'||str[j]==' ') str1+=tolower(str[j]);               else continue;            stringstream s(str1);            while (s>>buf)                if (dict.count(buf)) a[i]++;//遍历看每行出现关键字的次数        }        int maxn=a[0];        for (int i=0;i<m;i++)            maxn=max(maxn,a[i]);        printf("Excuse Set #%d\n",kase++);        for (int i=0;i<m;i++)            if (a[i]==maxn) cout<<cun[i]<<endl;        cout<<endl;        for (int i=0;i<m;i++)            cun[i]="";    }    return 0;}

0 0