字母統計
時間限制:3000 ms | 記憶體限制:65535 KB
難度:1
- 描述
- 現在給你一個由小寫字母組成字串,要你找出字串中出現次數最多的字母,如果出現次數最多字母有多個那麼輸出最小的那個。
- 輸入
- 第一行輸入一個正整數T(0<T<25)
隨後T行輸入一個字串s,s長度小於1010。 - 輸出
- 每組資料輸出佔一行,輸出出現次數最多的字元;
- 樣例輸入
-
3 abcd bbaa jsdhfjkshdfjksahdfjkhsajkf
- 樣例輸出
-
a a j
時間限制:3000 ms | 記憶體限制:65535 KB
難度:1
- 描述
- 現在給你一個由小寫字母組成字串,要你找出字串中出現次數最多的字母,如果出現次數最多字母有多個那麼輸出最小的那個。
- 輸入
- 第一行輸入一個正整數T(0<T<25)
隨後T行輸入一個字串s,s長度小於1010。 - 輸出
- 每組資料輸出佔一行,輸出出現次數最多的字元;
- 樣例輸入
-
3 abcd bbaa jsdhfjkshdfjksahdfjkhsajkf
- 樣例輸出
-
a a j
#include <iostream> #include <algorithm> #include <vector> #include <string> using namespace std; struct WordCnt{ char ch; int cnt; WordCnt(int aCh, int aCnt):ch(aCh),cnt(aCnt){} bool operator <(const WordCnt &a) const{ if(cnt!=a.cnt) return cnt > a.cnt; else return ch < a.ch; } }; int main(){ int T; cin >> T; for (int icase = 0; icase < T; ++icase) { string str; cin >>str; vector<WordCnt> word; for (int i = 0; i < str.length(); ++ i) { int j = 0; for (j = 0; j < word.size(); ++ j) { if(word[j].ch == str[i]) word[j].cnt++; } if(j == word.size()) word.push_back(WordCnt(str[i],1)); } sort(word.begin(),word.end()); cout<<word[0].ch<<endl; } }