在 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

更新日期: 2020-9-17

742 次浏览

开启职业生涯

完成课程获得认证

开始
广告