题目描述
小梦要设计下一代的键盘,需要对字母按键重新排序,计划将出现频率最高的按键让食指来触发,而出现频率最低的按键让无名指来触发。小梦编写了一个爬虫程序,从网上爬下文章,并且自动分析其中各个字母出现的次数。
输入格式
一个没有空白字符的字符串。
输出格式
按照出现次数从高到低输出大写字母及其出现次数,注意不区分大小写,没有出现过的字母不需要输出。
样例
输入样例
123_HelloWorld_C++
输出样例
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;
char a[500];
struct tong {
int n;
char m;
} b[26];
bool f(tong a, tong b) {
if (a.n != b.n) {
return a.n > b.n;
}
return a.m < b.m;
}
int main() {
cin >> a;
for (int i = 0; a[i] != '\0'; i++) {
if (a[i] >= 'a' && a[i] <= 'z') {
a[i] -= 'a' - 'A';
}
if (a[i] >= 'A' && a[i] <= 'Z') {
b[a[i] - 'A'].n++;
b[a[i] - 'A'].m = a[i];
}
}
sort(b, b + 26, f);
for (int i = 0; i < 26; i++) {
if (b[i].n >= 1) {
cout << b[i].m << ' ' << b[i].n << '\n';
}
}
return 0;
}