一个字符串中可能包含a~z中多个字符串,并且可能会有重复,如 String data ="abcdaaa",这道字符串出现次数醉倒的字母就是a,出现了4次。现在用户输入一个字符串,我们需要求出出现次数最多的字母,并且求出次数,如果存在字母中出现最多的次数不唯一,但所有出现次数最多的字母及次数都要打印出来。
输入:输入是一行字符串,就是我们所需统计的字符串,例如我们输入 “abcabd”
输出:输出是出现次数最多的字母以及出现次数,二者用空格分开,如果出现最多次数的字母不唯一,按照字母在字符串中出现的顺序,把所有结果打印出来,用换行符将每一行的字母和次数分开
样例输入
abcabd
样例输出
a 2 b 2
#include<iostream>
#include<string>
#include<map>
using namespace std;
map<char, int>mp;
int main()
{
string str;
cin >> str;
for (int i = 0; i < str.length(); i++)
{
if (mp.find(str[i]) == mp.end())
{
mp[str[i]] = 1;
}
else
{
mp[str[i]]++;
}
}
map<char, int>::iterator it;
int max = 0;
for (it = mp.begin(); it != mp.end(); it++)
{
if (it->second > max)
{
max = it->second;
}
}
for (it = mp.begin(); it != mp.end(); it++)
{
if (it->second == max)
{
cout << it->first << " " << it->second << endl;
}
}
return 0;
}