在 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 次瀏覽

開啟職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.