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
广告