【正经题解】 词频统计
2025-12-13 14:24:14
发布于:浙江
69阅读
0回复
0点赞
考四级来写三级的题,嗯
题目大意:
现在给你 个单词,在忽略大小写的情况下,给出出现次数最高的单词。
思路:
注意到 。所以不需要哈希表。建立一个 pair 数组。首先,把每一个字符串转换为小写。之后判断该字符是否出现过。如果出现过就把这个字符串的出现数量加一;否则就标记该字符串出现次数为一。
代码(个人觉得 pair 比 struct 方便,不要喷我AI
,真的是我写的):
#include <bits/stdc++.h>
using namespace std;
vector<pair<string,int>> sz;
bool cmp(pair<string,int>& a,pair<string,int>& b){
return a.second>b.second or (a.second==b.second and a.first<b.first);
}
int main(){
int n;
cin >> n;
while(n--){
string a;
cin >> a;
for(int i=0;i<a.size();i++){
if(a[i]>='A' and a[i]<='Z')a[i]+=('a'-'A');
}bool p=false;
for(auto i=sz.begin();i!=sz.end();i++){
if(i->first==a){
i->second++;
p=true;
break;
}
}if(!p){
sz.push_back({a,1});
}
}sort(sz.begin(),sz.end(),cmp);
cout << sz[0].first;
return 0;
}
全部评论 3
证明我不是AI:@下沙印象城 操军。这是老师
2025-12-13 来自 浙江
0因为不会写
pair的cmp,就上网查了一下。嗯2025-12-13 来自 浙江
0d
2025-12-13 来自 浙江
0








有帮助,赞一个