c/c++开发分享从C上的ASCII字符中检测最常见的重复符号

如何编写一个函数的实现,该函数将ASCII字符序列作为输入,并给出最常见的重复符号? 我需要在C上制作它,哪里不好?

char mostFrequentCharacter(char* str, int size); char value; int valueCount = 0; for (int i =0; i = valueCount) { valueCount = totalCount; value = oneChar; } } return value; 

要在具有双核ARM处理器和无限内存的设备上运行的优化function。

    如果内存不是您所指出的问题,那么您应该创建查找表,在其中存储每个字符的出现次数。 由于输入是ASCII字符序列,结构的大小应为256.检查输入并初始化查找表后,在主for循环中,增加查找表中相应位置的出现次数,检查是否超出了出现次数当前最大计数,如果是,则更新当前最大计数和当前最常见字符。 最后,只返回最常见的角色。 该解决方案的时间复杂度是O(N)和空间复杂度O(1)。

     char mostFrequentCharacter(char* str, int size) { char mosfFrequent; int counts[256], i, maxCount = 0; // in the case of invalid input, return some invalid character if(!str || size < 1) return ''; for(i = 0; i < 256; i++) counts[i] = 0; for (i = 0; i < size; i++) { counts[str[i]]++; if(counts[str[i]] > maxCount) { maxCount = counts[str[i]]; mostFrequent = str[i]; } } return mostFrequent; } 

    这是一个算法大纲:

    所有这一切都在字符串上完成。 存储256 *大小的整数字节,但你有“无限内存”,相比之下这是微不足道的;-)

      以上就是c/c++开发分享从C上的ASCII字符中检测最常见的重复符号相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注(猴子技术宅)。

      本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

      如若转载,请注明出处:https://www.ssfiction.com/c-cyuyankaifa/545960.html

      发表评论

      电子邮件地址不会被公开。 必填项已用*标注