0
已解决
马奕阳
中级守护
中级守护
1462 出现频次最高字母
经验值:1200
时间限制:1000毫秒
内存限制:128MB
题目描述 De**ion
在英语中,26个英文字母之间看似和谐相处,其实每个字母之间也在暗暗较劲,自己被人类使用得越频繁,说明自己越有价值。在一个字符串中(都是小写字母),找到出现频次最高的那个字母,并输出该字母及其出现的频次。
输入描述 Input De**ion
输入为一行,为一个字符串,且都是小写字母
输出描述 Output De**ion
输出为一行,为一个小写字母和一个整数,分别表示出现频次最高的小写字母及其对应的出现频次,中间用单个空格隔开。(如有多个频次相同的字母,取在字符串中最先出现的字母)
样例输入 Sample Input
abcccdeeefggg
样例输出 Sample Output
c 3
代码:
- #include <iostream> #include <string> #include <unordered_map> using namespace std; pair<char, int> highestFrequency(string s) { unordered_map<char, int> freq; int maxFreq = 0; char maxChar = '\0'; for (char c : s) { freq[c]++; if (freq[c] > maxFreq || (freq[c] == maxFreq && c < maxChar)) { maxFreq = freq[c]; maxChar = c; } } return {maxChar, maxFreq}; } int main() { string s; getline(cin, s); // 读取整行输入 pair<char, int> result = highestFrequency(s); cout << result.first << " " << result.second << endl; return 0; }