今天小編就為大家分享一篇關於C++找出字符串中出現最多的字符和次數,時間復雜度小於O(n^2),小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧。

已知字符串“aabbbcddddeeffffghijklmnopqrst”編程找出出現最多的字符和次數,要求時間復雜度小於O(n^2)
#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;
}
以上就是這篇文章的全部內容了,有什么問題歡迎大家評論區留言。

最后,如果你也想成為程序員,想要快速掌握編程,趕緊加入學習企鵝圈子!
里面有資深專業軟件開發工程師,在線解答你的所有疑惑~編程語言入門“so easy”
編程學習書籍:

編程學習視頻:
