1042 字符统计
Statement
Metadata
- 作者: CHEN, Yue
- 单位: 浙江大学
- 代码长度限制: 16 KB
- 时间限制: 400 ms
- 内存限制: 64 MB
请编写程序,找出一段给定文字中出现最频繁的那个英文字母。
输入格式
输入在一行中给出一个长度不超过 1000 的字符串。字符串由 ASCII 码表中任意可见字符及空格组成,至少包含 1 个英文字母,以回车结束(回车不算在内)。
输出格式
在一行中输出出现频率最高的那个英文字母及其出现次数,其间以空格分隔。如果有并列,则输出按字母序最小的那个字母。统计时不区分大小写,输出小写字母。
输入样例
输出样例
Solution
#include <cctype>
#include <cstring>
#include <iostream>
int main() {
int n, i, num[128] = {0};
char c;
while (scanf("%c", &c) && c != 10) {
n = c;
if (c >= 'a' && c <= 'z') {
num[n]++;
} else if (c >= 'A' && c <= 'Z') {
n += 32;
num[n]++;
}
}
int m = 0;
int flag;
for (i = 97; i < 123; i++) {
if (m < num[i]) {
m = num[i];
flag = i;
} else if (m == num[i]) {
if (flag > i) {
m = num[i];
flag = i;
}
}
}
printf("%c %d\n", flag, m);
return 0;
}
Last update: May 4, 2022