C++ 中陣列字首的最大出現次數
在這個問題中,我們給定一個全是小寫字母的字元陣列。我們的任務是查詢陣列中字首的最大出現次數。
我們需要統計出現次數最多的非空字首的出現次數。
讓我們舉個例子來理解這個問題,
Input : string = “xyyzkxyyzk” Output : 2
解決方案
邏輯是想象一下,陣列的字首必須始終包含字串的第一個字元,其重複出現的次數也是如此。字串的第一個字元顯然是最少字元數的字首。因此,出現次數最多的字首肯定就是字串的第一個字元。所以現在工作已經簡化為查詢字串中第一個字元的出現次數。
演算法
讀取一個小寫字母的字串。
建立一個函式來返回所需字首的計數。
初始化 count=0。
查詢字串第一個字元的頻率。
列印字串第一個字元的頻率,最終它將是字串字首的最大出現次數。
示例
程式說明我們解決方案的工作原理,
#include <iostream> using namespace std; int findPrefixOccurence(string str){ char chars = str[0]; int countOccrence = 0; for (int i = 0; i < str.length(); i++) { if (str[i] == chars) countOccrence++; } return countOccrence; } int main(){ string str = "xyyzxxyyzxyxx"; cout<<"The maximum occurence of prefix in the array is "<<findPrefixOccurence(str); return 0; }
輸出
The maximum occurence of prefix in the array is 6
廣告