与えられた期間のテキストで表示され、最も頻繁に手紙を識別するためのプログラムを作成してください。
入力フォーマット:
1000年を超えていない行の文字列の所定の長さを入力します。ASCIIコード表の文字列少なくとも1つの英語の文字を含む任意の目に見える文字とスペース構図、キャリッジリターンと終了(入力カウントしません)。
出力フォーマット:
文字の最大出力周波数が表示され、それらの間の空間によって分離された行の出現数、。そこに並んで、出力アルファベット順で最小、その文字の場合。大文字小文字を区別しない統計情報、小文字の出力。
サンプル入力:
This is a simple TEST. There ARE numbers and other symbols 1&2&3...........
出力例:
e 7
-
アイデア:ハッシュ
詳細:直接は最大文字kを見つけます -
コード:
#include <bits/stdc++.h>
using namespace std;
int has[256];
int main(){
string s;
getline(cin, s);
for(int i = 0; i < s.size(); ++i){
if(islower(s[i])) has[s[i]]++;
if(isupper(s[i])) has[tolower(s[i])]++;
}
int k = 'a';
for(int i = 'a'; i <= 'z'; ++i){
if(has[i] > has[k]){
k = i;
}
}
printf("%c %d", k, has[k]);
return 0;
}