软件编程
位置:首页>> 软件编程>> C语言>> C++找出字符串中出现最多的字符和次数,时间复杂度小于O(n^2)

C++找出字符串中出现最多的字符和次数,时间复杂度小于O(n^2)

作者:蜗牛201  发布时间:2023-06-22 07:32:31 

标签:c++,字符串,字符,出现次数

已知字符串“aabbbcddddeeffffghijklmnopqrst”编程找出出现最多的字符和次数,要求时间复杂度小于O(n^2)

/********************************************************
Copyright (C), 2016-2017,
FileName: main9
Author: woniu201
Description:求字符串中出现次数最多的字符和次数
********************************************************/
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void search(char* pData, int len)
{
char counts[1024] = {0}; //存放原始数据作为为索引出现的次数
char bufMax[1024] = {0}; //用于存放出现次数最多的字符
int max = 0;  //出现次数最多的字符
for (int i=0; i<len; i++)
{
counts[pData[i]] ++;
}
for (int i=0; i<1024; 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<strlen(bufMax); i++)
{
printf("%c ", bufMax[i]);
}
printf("\n");
printf("出现最多的字符的次数:%d\n", max);
}
int main()
{
char* srcData = "aabbbcddddeeffffghijklmnopqrst";
search(srcData, strlen(srcData));
getchar();
return 1;
}

来源:https://blog.csdn.net/woniu211111/article/details/78401355

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com