map题解
2026-02-11 22:17:22
发布于:新疆
15阅读
0回复
0点赞
题目让输出出现次数最多的单词,单词可以用string类,但个数不行,所以可以用map,用string的下标来存储单词个数int。
那么好,题解如下:
#include<bits/stdc++.h>
using namespace std;
string f(string s){//因为本题忽略了大小写,所以写个函数来全部转换成小写
int n=s.size();
for(int i=0;i<n;i++){
if(s[i]>=65&&s[i]<=90) s[i]+=32;
}
return s;
}
int main(){
int n,maxn=-1;
cin>>n;
string maxs;
map<string,int>a;//创建一个map,也就是a
for(int i=1;i<=n;i++){
string s;
cin>>s;
s=f(s);//转换大小写
a[s]++;//个数加一
if(a[s]>maxn){
maxn=a[s];
maxs=s;//打擂台记录出现次数最多的单词
}
}
cout<<maxs;//输出
return 0;
}
这里空空如也




有帮助,赞一个