• ACM 字母统计


    字母统计

    时间限制: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;
            
        }
    }
  • 相关阅读:
    UVA
    UVA
    UVA
    UVA
    POJ
    Yahoo Programming Contest 2019 自闭记
    Codeforces Global Round 1 自闭记
    CodeCraft-19 and Codeforces Round #537 Div. 2
    BZOJ4912 SDOI2017天才黑客(最短路+虚树)
    BZOJ2877 NOI2012魔幻棋盘(二维线段树)
  • 原文地址:https://www.cnblogs.com/xiongqiangcs/p/3642783.html
Copyright © 2020-2023  润新知