Map+Tolower的题解
2026-09-29 17:01:13
发布于:浙江
14阅读
0回复
0点赞
题目大致意思:
要求输出出现最多的词
这里可以用map的key储存词名,用value来储存词的出现次数
注:因为大小写统一,用tolower()
过程:循环n次:
输入字符串t。遍历t:用tolower转成小写,在m[t]++{key=t,value+=1}
在遍历map容器m比较出现次数就行
AC代码:
#include <bits/stdc++.h>
using namespace std;
map<string,int>m;
int n;
int main(){
cin>>n;
for(int i=0;i<n;i++){
string t;
cin>>t;
for(int j=0;j<t.size();j++){
t[j]=tolower(t[j]);
}
m[t]++;
}
int mmax=0;
string s;
for(auto p:m){
if(p.second>mmax){
mmax=p.second;
s=p.first;
}
}
cout<<s;
return 0;
}
备注:map<int ,string>::iterator a太烦了,用auto。
求求点个赞
这里空空如也





有帮助,赞一个