題目連結: 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; | |
} |