使用 C++ 查找输入字符串中出现次数最多的字符
在这个问题中,我们给定一个包含小写字符的输入字符串。我们的任务是查找输入字符串中出现次数最多的字符。
如果多个值的出现频率相同,我们需要打印字典序较小的值。
让我们举个例子来理解这个问题,
输入
string = “programming”
输出
g
解决方案方法
为了找到问题的解决方案,我们需要对读取的字符串进行排序,然后遍历字符串,以便我们可以找到字符串中出现次数最多的字符。我们将使用哈希方法(哈希表方法)来解决这个问题。遍历并将每个单独的字符哈希到字符数组中称为哈希。
通常,哈希数组的大小分配为 256。但是,如果字符串仅包含范围从 0 到 127 的字符,我们可以使用大小为 128 的哈希表,以便我们可以根据字符串释放哈希表的大小。
算法
读取输入字符串。
创建一个函数来计算字符串中出现次数最多的字符。
创建一个数组来保存单个字符的计数,并将数组初始化为 0。
从输入字符串构建字符计数数组。
初始化最大计数和结果。
遍历字符串并维护每个其他字符的计数。
最后,找到计数最多的字符并打印出来。
示例
程序说明我们解决方案的工作原理
#include <bits/stdc++.h>
using namespace std;
char findMaxOccuringChar(char str[]){
int freq[26] = { 0 };
int maxFreq = -1;
char maxFreqChar;
int len = strlen(str);
for (int i = 0; i < len; i++)
freq[str[i] - 'a']++;
for (int i = 0; i < 26; i++)
if (maxFreq < freq[i]) {
maxFreq = freq[i];
maxFreqChar = (char)(i + 'a');
}
return maxFreqChar;
}
int main(){
char str[] = "programming";
cout<<"Maximum occurring character of input string is "<<findMaxOccuringChar(str);
return 0;
}输出
Maximum occurring character of input string is g
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP