测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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; }
上一题 下一题