在 C++ 中查找第二个最频繁字符的程序
在这个问题中,我们得到了字符串 str。我们的任务是创建一个在 C++ 中查找第二个最频繁字符的程序。
让我们举个例子来理解这个问题
输入
str = “abaacabcba”
输出
‘b’
解决方案方法
要找到出现在字符串中最多的第二个字符。我们需要维护一个计数数组 chatCount,该数组用于存储字符串中每个字符的频率。然后利用该数组,我们将找到数组中最大和第二大频率的字符。并显示第二个最频繁的字符。
一个演示我们解决方案工作原理的程序
示例
#include <iostream> #include <string.h> using namespace std; char findSecFreqChar(string str){ int charFreq[256] = {0}; for (int i = 0; i < str.length(); i++) (charFreq[str[i]])++; int maxFreq = charFreq[0], secFreq = charFreq[0]; for (int i = 0; i < 256; i++){ if (charFreq[i] > charFreq[maxFreq]){ secFreq = maxFreq; maxFreq = i; } else if (charFreq[i] > charFreq[secFreq] && charFreq[i] != charFreq[maxFreq]) secFreq = i; } return secFreq; } int main(){ string str = "tutorialspoint"; char secFreqChar = findSecFreqChar(str); cout << "Second most frequent character of the string is"<<secFreqChar; return 0; }
输出
Second most frequent character of the string is i
广告