使用 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