#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; struct P{ int times;//次數 char ch;//代表字母 }; int comp(const P x,const P y){ if(x.times==y.times)//若次數相等,依字母排序 return x.ch<y.ch; return x.times>y.times;//出現次數多的排前面 } int main(){ char ch,str[10000]; int N; P a[27]; for(int i=0;i<26;i++){ a[i].times = 0; a[i].ch = i+65; }//先做初始化 scanf("%d\n",&N); while(N--){ cin.getline(str,10000); for(int i=0;i<strlen(str);i++) if(isalpha(str[i])){//判斷是不是英文字母 if(islower(str[i])) str[i]-=32;//如果是小寫則轉成大寫 a[(int)str[i]-65].times++;//次數+1 } } sort(a,a+26,comp);//排序 for(int i=0;i<26,a[i].times>0;i++)//按照次數輸出,但沒出現過的不用輸出 cout<<a[i].ch<<" "<<a[i].times<<endl; }