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

更新于: 2022年1月24日

200 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告