cctype真的很方便
#include <iostream>
#include <map>
#include <cctype>
using namespace std;
int main(){
string s;
map<string,int> hash_map;
getline(cin,s);
for(int i=0;i<s.length();i++){
if(isupper(s[i])){//如果是大写字母则将其转化为小写字母
s[i]=tolower(s[i]);
}
}
for(int i=0;i<s.length();i++){//采用双指针
string res;
if(isalnum(s[i])){//如果当前字符是字母或者数字
for(int j=i;j<s.length();j++){
if(!isalnum(s[j])){//j移动到从i开始后的第一个非数字字母字符,停止,i=j
i=j;
break;
}
else{//只要j指向的为数字和字母,就继续截取字符
res+=s[j];
}
}
hash_map[res]++;//截取完后更新哈希表的值
}
}
string ans;
int max=0;
for(auto it : hash_map){
if(it.second>max){
max=it.second;
ans=it.first;
}
}
cout<<ans<<" "<<max;
return 0;
}