AcWing 1557. 说话方式
原题链接
简单
作者:
leo123456
,
2020-09-01 12:19:45
,
所有人可见
,
阅读 467
#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){ //65A 97a
// 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]))
{
string word;
int j=i;
while(j<str.size()&&check(str[j])) word+=tolower(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;
}