hihocoder 1385 A Simple Job 模拟

来源:互联网 发布:密码生成器软件 编辑:程序博客网 时间:2024/04/28 17:33

题解:

从每个单词的首位开始枚举,再判断之后是否含有“,”和“.”,构成的词组和出现次数用map来存。

#include<iostream>#include<cstring>#include<cstdio>#include<algorithm>#include<cmath>#include<map>#include<set>#include<vector>#include<string>#include<queue>#include<bitset>using namespace std;typedef long long ll;int main(){    string s;    map<string,int> mp;    while(getline(cin,s))    {        if(s=="####")        {            string ans;            int k=0;            for(auto i=mp.begin();i!=mp.end();i++)            {                if(i->second>k)                {                    ans=i->first;                    k=i->second;                }            }            cout<<ans<<":"<<k<<endl;            mp.clear();        }        else        {            int len=s.size();            for(int i=0;i<len;i++)            {                string t="";                if(s[i]>='a'&&s[i]<='z')                {                    int pos=i;                    while(s[pos]>='a'&&s[pos]<='z')                        t+=s[pos++];                    int flag=0;                    int k=pos;                    for(;;pos++)                    {                        if(s[pos]==','||s[pos]=='.'||pos>=len)                        {                            flag=1;                            break;                        }                        if(s[pos]>='a'&&s[pos]<='z')                            break;                    }                    i=pos-1;                    if(flag)                    {                        continue;                    }                    t+=" ";                    while(s[pos]>='a'&&s[pos]<='z')                        t+=s[pos++];                    mp[t]++;                }            }        }    }    return 0;}


0 0
原创粉丝点击