请用c++在仅包含小写字母的字符串中找出出现次数最多的字符。 如果出现次数最多的字符有多个,输出最后一个出现次数最多的字符。
时间: 2023-10-30 20:07:24 浏览: 109
以下是使用 C++ 实现的代码:
```c++
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
string s;
cin >> s;
int count[26] = {0}; // 用于记录每个字母出现的次数
for (int i = 0; i < s.length(); i++) {
count[s[i] - 'a']++; // 将出现过的字母的计数加1
}
int max_cnt = 0; // 最大出现次数
char max_char = 'a'; // 出现次数最多的字符
for (int i = 0; i < 26; i++) {
if (count[i] >= max_cnt) { // 如果当前字母的出现次数大于等于最大出现次数
max_cnt = count[i]; // 更新最大出现次数
max_char = i + 'a'; // 更新出现次数最多的字符
}
}
cout << max_char << endl;
return 0;
}
```
这段代码的基本思路是:首先遍历字符串,用一个计数数组记录每个字母出现的次数;然后再遍历计数数组,找出出现次数最多的字母。注意,由于计数数组的下标是从 0 到 25 的,而字母是从 'a' 到 'z' 的,因此需要将字母转换为对应的下标。
阅读全文