PAT B 1042(C ++) - ロングブラシ弟のタイトルパス

1042の文字の統計情報(20ポイント)は
、最も頻繁に手紙与えられたテキストの一部を検索するプログラムを書きます。

入力フォーマット:
1000超えない行の文字列の所定の長さを入力してください。ASCIIコード表の文字列少なくとも1つの英語の文字を含む任意の目に見える文字とスペース構図、キャリッジリターンと終了(入力カウントしません)。

出力フォーマット:
アルファベットの文字や行の出現の出力が表示されますの数の最高周波数は、それらの間のスペースで区切られています。そこに並んで、出力アルファベット順で最小、その文字の場合。大文字小文字を区別しない統計情報、小文字の出力。

输入样例:
これは簡単なテストです。数字や他の記号1&2&3があります...

出力サンプル:
E. 7

問題解決のアイデア:マップを格納した文字発生数、および最終的に最大数のマップの出力に

#include<iostream>
#include<cstdio>
#include<string>
#include<map>
using namespace std;
int main(){
	string x;
	int max = 0;
	char sMax = ' ';
	map<char, int> xmap;
	getline(cin,x);
	for (int i = 0; i < x.length(); i++){
		char c = tolower(x[i]);
		if (c >= 'a' && c <= 'z'){
			xmap[c]++;
		}
	}
	for (const auto &y : xmap){
		char c=y.first;
		int sum = y.second;
		if (sum>max){
			max = sum;
			sMax = c;
		}
	}
	cout << sMax << " " << max << endl;
    return 0;
}
公開された46元の記事 ウォンの賞賛0 ビュー578

おすすめ

転載: blog.csdn.net/qq_23079139/article/details/104102445