題目連結: https://zerojudge.tw/ShowProblem?problemid=c044

# 解題思路

用 struct 紀錄符號跟次數,之後再排就好啦!!

# 程式碼

#include <bits/stdc++.h>
using namespace std;
struct box {
    char c;
    int time;
};
bool comp(box a ,box b){
    if(a.time>b.time) return true;
    else if ((a.time==b.time)&&(a.c<b.c)) return true;
    else return false;
}
int main(){
    int n;  cin>>n;
    box b[26];
    for(int i=0;i<26;i++)b[i].time=0;
    for(int i=0;i<26;i++) b[i].c=char(i+65);
    cin.ignore();
    while(n--){
        string s;
        getline(cin,s);
        for(int i=0;i<s.length();i++)
            if(isalpha(s[i]))
                b[toupper(s[i])-'A'].time++;
    }
    sort(b,b+26,comp);
    for(int i=0;i<26;i++)
        if(b[i].time>0)
            cout<<b[i].c<<" "<<b[i].time<<endl;
}
更新於 閱讀次數

用實際行動犒賞爆肝的我😀

Zrn Ye LinePay

LinePay