AcWing 1557. 说话方式
原题链接
简单
作者:
dai学生
,
2021-07-15 23:50:52
,
所有人可见
,
阅读 238
#include<iostream>
#include<unordered_map>
using namespace std;
bool check(char c)
{
if(c>='0'&&c<='9')return true;
if(c>='a'&&c<='z')return true;
if(c>='A'&&c<='Z')return true;
return false;
}
char to_lower(char c)
{
if(c>='A'&&c<='Z')return c+32;
return c;
}
int main()
{
string str;
getline(cin,str);//读入一行,包括空格
unordered_map<string,int> hash;
for(int i=0;i<str.size();i++)
{
if(check(str[i]))
{
int j=i;
string word;
while(j<str.size()&&check(str[j]))word+=to_lower(str[j++]);
hash[word]++;
i=j;
}
}
string word;
int cnt=-1;
for(auto item:hash)
{
if(item.second>cnt||(item.second==cnt&&item.first<word))
{
word=item.first;
cnt=item.second;
}
}
cout<<word<<" "<<cnt<<endl;
return 0;
}