题意:单词由数字和大小写字母组成,问你那个单词出现最多并输出次数。
思路:忽略大小写,然后从每个单词起始往下找。
代码:
#include<bits/stdc++.h>
using namespace std;
bool check(char c)
{
if(isdigit(c))return true;
if(isalpha(c))return true;
return false;
}
int main()
{
string s1;
unordered_map<string,int> hash;
getline(cin,s1);
for(int i=0;i<s1.size();i++)
{
if(check(s1[i]))
{
string word;
int j=i;
while(j<s1.size()&&check(s1[j])) word+=tolower(s1[j++]);
i=j-1;
hash[word]++;
}
}
int cnt=-1;
string word;
for(auto item:hash)
{
if(cnt<item.second||item.second==cnt&&item.first<word)
{
cnt=item.second;
word=item.first;
}
}
cout<<word<<' '<<cnt<<endl;
return 0;
}