设计一个算法,计算一个仅包含字母字符的顺序串s中的最大字母出现的次数,使用简单简洁的语言C++写出
时间: 2024-10-18 19:15:17 浏览: 30
要设计一个简单的C++算法来计算一个只包含字母字符的字符串`s`中每个字母的最大出现次数,你可以采用哈希表(unordered_map)的数据结构,遍历字符串并将每个字母及其出现次数存储在哈希表中。然后,对每个字母的当前出现次数更新其最大值。
以下是一个简化的C++实现:
```cpp
#include <iostream>
#include <unordered_map>
using namespace std;
int maxLetterCount(string s) {
unordered_map<char, int> letterCount;
for (char c : s) { // 遍历字符串中的每一个字符
if ('a' <= c && c <= 'z') { // 只考虑小写字母
c = c - 'a'; // 转换为ASCII码范围内的数字
letterCount[c]++; // 更新对应字母的计数
}
}
int maxCount = 0; // 初始化最大计数值
for (auto& entry : letterCount) { // 遍历哈希表
maxCount = max(maxCount, entry.second); // 如果当前计数大于最大,更新最大计数
}
return maxCount;
}
int main() {
string s = "abcabcbb"; // 测试输入字符串
cout << "The maximum count of any letter in the string is: " << maxLetterCount(s) << endl;
return 0;
}
```
这个程序首先初始化一个空的哈希表`letterCount`,然后遍历字符串`s`中的每个字符,只统计小写字母,并将其转换为其ASCII码减去'a'的差值作为键。最后返回每个字母的最大出现次数。
阅读全文