A28444. 词频统计
填空题
中等
知识点
题目描述
词频统计
题目描述
在文本处理中,统计单词出现的频率是一个常见的任务。现在,给定n个单词,你需要找出其中出现次数最多的单词。在本题中,忽略单词中字母的大小写(即 Apple 、 apple 、 APPLE 、 aPPle 等均视为同一个单词)。
请你编写一个程序,输入n个单词,输出其中出现次数最多的单词。
输入格式
第一行,一个整数n ,表示单词的个数;
接下来n行,每行包含一个单词,单词由大小写英文字母组成。
输入保证,出现次数最多的单词只会有一个。
输出格式
输出一行,包含出现次数最多的单词(输出单词为小写形式)。
样例
输入样例 1
6
Apple
banana
apple
Orange
apple输出样例 1
apple数据范围
对于所有测试点,1≤n≤100 ,每个单词的长度不超过30 ,且仅由大小写英文字母组成。
参考答案
#include <bits/stdc++.h>
using namespace std;
int main() {
int n; cin >> n; assert(1 <= n && n <= 100);
map<string, int> cnt;
int mx = -1;
for (int i = 1; i <= n; i ++) {
string s; cin >> s;
assert(s.length() <= 30);
transform(s.begin(), s.end(), s.begin(), ::tolower);
if (! cnt.count(s))
cnt[s] = 0;
mx = max(mx, ++ cnt[s]);
}
int mx_num = 0;
for (auto it = cnt.begin(); it != cnt.end(); it++)
if ((it->second) == mx) {
cout << (it->first) << '\n';
mx_num ++;
}
assert(mx_num == 1);
return 0;
}
上一题
下一题