题目描述
给定一个只有小写英文字母组成的字符串,串长为n。请你编写程序求出这个字符串中出现次数最多的字母。
输入
输入有两行:第一行是一个正整数n( 1 < n < 100)表示字符串的长度。后面一行是一个长度为n的字符串(只由小写字母组成)。测试用例保证出现次数最多的字母只有一个。
输出
输出一行,仅输出出现次数最多的字母。
样例输入
5
acmcs
样例输出复制
c
代码
#include <stdio.h>
int main() {
//初始化数组
char s[100] = {0};
char b[100];
char c[100] = {0};
int max = 0;
int n = 0;
int count = 0;
scanf("%d %s", &n, &s);
//遍历构建字典,即b[]数组为含有26个字母的数组
for (int i = 0; i < 26; i++) {
b[i] = 'a' + i;
}
//将输入的字母与26个字母一一比较
//c[]数组为26字母对应的数量数组,若相同,则在对应位置+1
for (int i = 0; i < n; i++) {
for (int j = 0; j < 26; j++) {
if (s[i] == b[j]) {
c[j]++;
}
}
}
//遍历c[]数组,找到最大值对应的下标
for (int i = 1; i < 26; i++) {
if (c[i] > c[0]) {
c[0] = c[i];
max = i;
}
}
//将下标对应到b数组,即为对应字母
max = b[max];
printf("%c\n", max);
return 0;
}