• 字符统计算法(改进版)


           前面那篇关于字符统计的算法只能找出出现次数最多的一个字符,对于“aaabbb”这些有2个或以上的出现次数最多的情况无法全部找出来,于是做了一下改进,解决了这个问题。现在的算法并没有增加时间复杂度,但增加了空间复杂度。有什么问题欢迎交流。

     1 #include <stdio.h>
     2 #include <string.h>
     3 
     4 
     5 //要统计的字符串
     6 char *s = "abbbbccddddeeeegikgvvbdful697574999999eeeebrykjty478559454hhsdf";
     7 
     8 
     9 int main(void)
    10 {
    11     int len,i,n=0;
    12     int char_count;
    13 
    14     //字符串中每个字符出现的次数,最多能表示128种字符(7位ASCII码)
    15     char times[128]={0};
    16     //存放出现次数最多的字符
    17     char max_count_char[128];
    18 
    19     char_count = 0;
    20     //字符串长度
    21     len = strlen(s);
    22 
    23     //统计字符串各个字符出现的次数
    24     for(i=0;i<len;i++)
    25         times[s[i]]++;
    26 
    27     //找出字符串中出现次数的最大值
    28     for(i=0;i<128;i++)
    29     {
    30         if(times[i] > char_count)
    31             char_count = times[i];//出现次数,始终保存当前出现次数的最大值
    32     }
    33 
    34     //找出有几个出现次数最大的字符
    35     for(i=0;i<128;i++)
    36     {
    37         //与出现次数的最大值比较
    38         if(times[i] == char_count)
    39         {
    40             //相等则保存该字符
    41             max_count_char[n] = (char)i;
    42             n++;
    43         }
    44     }
    45 
    46     //打印所有出现次数最多的字符
    47     for(i=0;i<n;i++)
    48         printf("出现最多的字符是:%c ,出现的次数为:%d次\n",max_count_char[i],char_count);
    49 
    50     return 0;
    51 }

    运行效果:

  • 相关阅读:
    k8s-存储-volume
    k8s-存储-configmap
    k8s-集群调度
    k8s-常用命令
    k8s-资源限制
    k8s-更改证书时间
    kubeadmin安装k8s
    CCPC-Wannafly Winter Camp Day7 D---二次函数【数论】【构造】
    洛谷P1219 八皇后【dfs】
    2019寒假计数器
  • 原文地址:https://www.cnblogs.com/lknlfy/p/2866938.html
Copyright © 2020-2023  润新知