字母统计
时间限制: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; } }