1. 程式人生 > >求出現次數最多的字元

求出現次數最多的字元

一個字串中可能包含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;
}