题目描述
计算机标准键盘,敲入某个字母,无论大写还是小写,都是按同一个键,一般键盘标识的字母都是大写,你可以低头看下键盘验证一下。 输入一篇文章,现在需要统计出字母键敲击的次数,根据敲击次数由大到小分行输出,若该字母没有出现,则不用输出。
输入格式
一段文章,若干字符组成。
输出格式
按照敲击次数从高到低输出该字母键及其敲击次数,若多个键敲击次数一样,按照字母表先后顺序输出。没有出现过的字母不需要输出。
输入输出样例
输入样例1:
HelloWorld C++2024输出样例1:
L 3 O 2 C 1 D 1 E 1 H 1 R 1 W 1说明
【数据范围】
30% 的数据,仅包含大写字母,长度不超过 25。
30% 的数据,字符串长度不大于 25。
100% 的数据,字符串长度不大于 300。
桶计数,简单!!!
#include<bits/stdc++.h> using namespace std; typedef long long LL; string s; LL cnt['z'+10]; int main(){ getline(cin,s); for(LL i=0;i<s.size();i++)if(islower(s[i]))s[i]-=32; for(LL i=0;i<s.size();i++)if(isupper(s[i]))cnt[s[i]]++; LL maxn=0; for(char i='A';i<='Z';i++)maxn=max(maxn,cnt[i]); for(LL i=maxn;i>=1;i--){ for(char j='A';j<='Z';j++){ if(cnt[j]==i)cout<<j<<" "<<cnt[j]<<endl; } } return 0; }