演算法學習之路|字元統計
請編寫程式,找出一段給定文字中出現最頻繁的那個英文字母。
輸入格式:
輸入在一行中給出一個長度不超過1000的字串。字串由ASCII碼錶中任意可見字元及空格組成,至少包含1個英文字母,以回車結束(回車不算在內)。
輸出格式:
在一行中輸出出現頻率最高的那個英文字母及其出現次數,其間以空格分隔。如果有並列,則輸出按字母序最小的那個字母。統計時不區分大小寫,輸出小寫字母。
輸入樣例:
This is a simple TEST. There ARE numbers and other symbols 1&2&3………..
輸出樣例:
e 7
解題思路:
利用map中first存字元,second存字元的個數
然後遍歷map,找出字元最多的個數max。
再次遍歷map,輸出字元個數==max的字元。
#include<iostream>
#include<map>
#include<cctype>
#include<stdio.h>
using namespace std;
int main(){
map<char,int>s,ans;
char ch;
while((ch=getchar())!=`
`){
ch=tolower(ch);
if(ch>=`a`&&ch<=`z`){
s[ch]++;
}
}
int max=0;
for(map<char,int>::iterator i=s.begin();i!=s.end();i++){
if(i->second>max){
max=i->second;
}
}
for(map<char,int>::iterator i=s.begin();i!=s.end();i++){
if(i->second==max)
ans[i->first]=i->second;
}
cout<<ans.begin()->first<<" "<<ans.begin()->second;
}
相關文章
- 演算法學習之路|個位數統計演算法
- 演算法學習之路|科學計數法演算法
- 演算法學習之路|划拳演算法
- 演算法學習之路|差分約束系統演算法
- 演算法學習之路|互評成績計算演算法
- 演算法學習之路|A除以B演算法
- 演算法學習之路|列印排名演算法
- 演算法學習之路|方格分割演算法
- 演算法學習之路|朋友數演算法
- 演算法學習之路|SpellItRight演算法
- 演算法學習之路|歐幾里得遊戲演算法遊戲
- 演算法學習之路|月餅演算法
- 演算法學習之路|PATRanking演算法
- 演算法學習之路|列印沙漏演算法
- 演算法學習之路|快速排序演算法排序
- 演算法學習之路|結繩演算法
- 演算法學習之路|數零壹演算法
- 演算法學習之路|開學寄語演算法
- 系統架構設計師學習之路(31)架構
- 演算法學習之路|說反話演算法
- 演算法學習之路|幼兒園買玩具演算法
- 演算法學習之路|小賭怡情演算法
- 演算法學習之路|影像過濾演算法
- 演算法學習之路|日期問題演算法
- 演算法學習之路|賣個萌演算法
- 演算法學習之路|螺旋矩陣演算法矩陣
- 演算法學習之路|選擇題演算法
- JS演算法——統計字元數量JS演算法字元
- Makefile學習之路(2) — Makefile的變數和萬用字元變數字元
- 演算法學習之路|PlayOnWords(尤拉道路+dfs)演算法
- 演算法學習之路|舊鍵盤打字演算法
- 演算法學習之路|最簡分數演算法
- 演算法學習之路|檢驗身份證演算法
- 演算法學習之路|愛丁頓數演算法
- 演算法學習之路|跟奧巴馬一起程式設計演算法程式設計
- 人工智慧之路學習計劃人工智慧
- 統計學習方法筆記-EM演算法筆記演算法
- 演算法學習之路|最小生成樹——prime演算法演算法