C++实现描述 【背景描述】电视台筹办"神秘大冒险"综艺活动,准备让嘉宾们探访欧洲古国,获得神秘卷轴,卷轴上含有一串密语,该密语指向藏宝大门的密码。由n个大小写字母组成,需要找到密语中出现次数最多的字符以及其出现的次数,才能获得藏宝大门的密码。 【问题描述】连续输入n个大小写字母保存至数组中,找出其中出现次数最多的字符(已知出现最多的字符只有一个),输出出现次数最多的字符以及其出现的次数。 输入描述 一行,一个正整数n ( 1≤n≤100 ) ; 一行,n个大小写字母,字母之间使用空格分隔。 输出描述 一行,一个字符和一个正整数,中间使用空格分隔。 用例输入 1 10 a a a b b c d d d d 用例输出 1 d 4
时间: 2024-03-02 12:48:59 浏览: 86
可以使用哈希表来统计每个字符出现的次数,最终找到出现次数最多的字符。具体实现过程如下:
1. 输入一个正整数 n 和 n 个大小写字母,将它们保存到字符数组中。
2. 定义一个长度为 26 的整型数组 counts,用来记录每个字符出现的次数。初始时所有元素都为 0。
3. 遍历字符数组,对于每个字符,将其转换为数字索引,然后在 counts 数组中对应的位置加上 1。
4. 找到 counts 数组中最大的元素,该元素的下标对应的字符就是出现次数最多的字符,最大元素的值就是该字符出现的次数。
5. 输出结果。
下面是完整的 C++ 代码实现:
```
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
char c[100];
for (int i = 0; i < n; i++) {
cin >> c[i];
}
int counts[26] = {0};
for (int i = 0; i < n; i++) {
counts[c[i] - 'a']++; // 将字符转换为数字索引
}
char max_char = 'a';
int max_count = 0;
for (int i = 0; i < 26; i++) {
if (counts[i] > max_count) {
max_char = 'a' + i; // 将数字索引转换为字符
max_count = counts[i];
}
}
cout << max_char << " " << max_count << endl;
return 0;
}
```
输入样例:
```
10
a a a b b c d d d d
```
输出样例:
```
d 4
```
阅读全文