今天小编就为大家分享一篇关于C++找出字符串中出现最多的字符和次数,时间复杂度小于O(n^2),小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧。
已知字符串“aabbbcddddeeffffghijklmnopqrst”编程找出出现最多的字符和次数,要求时间复杂度小于O(n^2)
#include "stdafx.h"
#include
#include
#include
void search(char* pData, int len)
{
char counts[1024] = ; //存放原始数据作为为索引出现的次数
char bufMax[1024] = ; //用于存放出现次数最多的字符
int max = 0; //出现次数最多的字符
for (int i=0; i
{
counts[pData[i]] ++;
}
for (int i=0; i
{
if (counts[i] > max)
{
max = counts[i];
bufMax[0] = i;
}else if ((counts[i] == max) && (counts[i] !=0))
{
bufMax[strlen(bufMax)] = i;
}
}
printf("出现最多的字符分别为:");
for (int i=0; i
{
printf("%c ", bufMax[i]);
}
printf("\n");
printf("出现最多的字符的次数:%d\n", max);
}
int main()
{
char* srcData = "aabbbcddddeeffffghijklmnopqrst";
search(srcData, strlen(srcData));
getchar();
return 1;
}
以上就是这篇文章的全部内容了,有什么问题欢迎大家评论区留言。
领取专属 10元无门槛券
私享最新 技术干货