2016 ACM/ICPC Asia Regional Beijing Online C.A Simple Job
https://vjudge.net/problem/HihoCoder-1385
题意:
给出一些字符串,求其中出现次数最多的单词,并按字典序输出结果。
思路:
模拟。
#include<bits/stdc++.h>
using namespace std;
#define ll long long
string s,s1,s2;
map<string,int> ma;
int main(){
while(getline(cin,s)){
if(s[0]=='#'&&s[1]==s[2]&&s[2]==s[3]&&s[3]==s[1])
{
int ans=-1;
string ss="";
map<string,int>::iterator it;
for(it=ma.begin();it!=ma.end();it++){
if(ans<it->second){
ans=it->second;
ss=it->first;
}
}
cout<<ss<<":"<<ans<<endl;
ma.clear();
}
int i=0,pre=0,len=s.length();
s1=s2="";
while(1){
for(;i<len;i++)
{
if(s[i]==' ')
continue;
else if(s[i]==','||s[i]=='.')
{
pre=0;
}
else
break;
}
if(s[i]=='\0'||i>=len)
break;
for(;i<len;i++)
{
if(s[i]==' '||s[i]==','||s[i]=='.'||s[i]=='\0')
break;
s2+=s[i];
}
if(pre==1){
ma[s1+' '+s2]++;
s1=s2;
}
else{
pre=1;
s1=s2;
}
s2="";
}
}
return 0;
}