卡码网语言基础课 | 16. 出现频率最高的字母

news2024/11/27 17:35:53

目录

一、 哈希表

二、 编写解题

2.1 统计出现次数 

 2.2 解答


通过本次练习,将学习到C++中哈希表的基础知识

题目:

给定一个只包含小写字母的字符串,统计字符串中每个字母出现的频率,并找出出现频率最高的字母,如果最高频率的字母有多个,输出字典序靠前的那个字母。

一、 哈希表

哈希表的作用是快速判断一个元素是否出现在集合里,它的核心思想是在关键码和存储位置之间建立一个确定的对应关系f, 使得每个关键字key对应一个存储位置,而这个对应关系,称之为散列函数(哈希函数)。

哈希表来解决问题的时候,一般选择以下三种数据结构。

  • 数组
  • set集合
  • map映射

二、 编写解题

由于输入的全都是小写字母,小写字母只有26个,那我们定义一个长度为26的数组即可,字符a到字符z的ASCII是26个连续的数值,所以字符a映射为下标0,相应的字符z映射为下标25。

2.1 统计出现次数 

统计字符大小出现的次数,并进行计数。

for(int i = 0; i < s.size(); i++){
    count[ s[i] - 'a' ]++;
}

 2.2 解答

#include <iostream>
#include <string>
using namespace std;
int main(){
    int n;
    string s;
    while(cin >> n){
        while(n--){
            cin >> s;
            
            //创建一个26位的count数组,并将其全部初始化为0,用于储存后续字符出现频率
            int count[26] = {0};
            
            //统计各个字符出现的频率,并将其储存在count数组中
            for(int i = 0; i < s.size(); i++){
                count[ s[i] - 'a']++;
            }
            
            //初始化最大值
            int flag = 0;
            
            //定义出现频率最多的字符为result
            char result;
            
            //遍历整个数组,找到值最大的索引,并找出出现频率最大的字符
            for(int i = 0; i < 26; i++){
                if(count[i] > flag){
                    flag = count[i];
                    result = i + 'a';
                }
            }
            cout << result << endl;
        }
        
    }
    
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1266988.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[数据结构]-map和set

前言 作者&#xff1a;小蜗牛向前冲 名言&#xff1a;我可以接受失败&#xff0c;但我不能接受放弃 如果觉的博主的文章还不错的话&#xff0c;还请点赞&#xff0c;收藏&#xff0c;关注&#x1f440;支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一、键值对…

上市公司-绿色专利申请、授权(2000-2022年)

一、数据介绍 数据名称&#xff1a;上市公司-绿色专利申请、授权 数据范围&#xff1a;A股上市公司 数据年份&#xff1a;2000-2022年 数据样本&#xff1a;56167条 数据来源&#xff1a;国家知识产权局、WIPO绿色专利清单 数据整理&#xff1a;自主整理 二、数据用途 数…

Tomcat 修改版本号

lib 目录下增加文件 /lib/org/apache/catalina/util/ServerInfo.properties ServerInfo.properties文件里面只需要输入server.info显示的版本号 其他可配置信息 server.infonginx server.number22.0 server.builtMay 11 2023 08:22:10 UTC 显示效果

解决掘金量化平台,赋权原因导致委托异常(委托价格低于标的[xxxx]当日的跌停价格)

文章目录 解决方法问题解析 解决方法 修改为全部使用不复权数据ADJUST_NONE进行回测&#xff0c;最新的版本支持分红配股了&#xff0c; 在交易的时候控制市值即可 问题解析 首先&#xff0c;已经设置数据参考前复权数据&#xff1a;run(backtest_adjustADJUST_PREV) 以长生…

图片去水印怎么弄?手把手教你几个去水印方法

在生活中&#xff0c;我们常常会遇到一些心仪的图片&#xff0c;然而这些图片往往带有水印或是不必要的杂物&#xff0c;如路过的行人、标志、商标等元素。这些元素通常位于图片的边角或中心&#xff0c;严重破坏了图片的整体美感&#xff0c;影响了我们的视觉体验。为了解决这…

怎样去除视频上的水印?这几个视频去水印方法简单无痕

作为全民自媒体时代&#xff0c;越来越多的人投身于自媒体行业&#xff0c;对于初学者&#xff0c;往往会遇到网上下载的视频素材会嗲有水印&#xff0c;影响二次创作以及视频观看度&#xff0c;那么怎样去除视频上的水印呢&#xff1f;别着急&#xff0c;今天分享三种视频去水…

2020年8月11日 Go生态洞察:Go 1.15版本发布深度解析

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

Active Directory 帐户锁定问题

Active Directory&#xff08;AD&#xff09;帐户可能由于多种原因而被锁定&#xff0c;IT 管理员需要发现帐户被锁定的原因并解锁它们&#xff0c;但是手动执行此操作是一项耗时且复杂的活动。 最重要的是&#xff0c;帐户锁定如此普遍的事实只会使解锁这些帐户更具挑战性&am…

新手必备!这款在线制作电子书神器,收藏起来慢慢学!

​随着互联网的普及&#xff0c;越来越多的人开始关注电子书市场。如果你是一名新手&#xff0c;想要尝试制作自己的电子书&#xff0c;那么可以跟着小编一起学习一下如何制作电子书&#xff01; 首先找到一款合适自己的电子书制作神器&#xff0c;小编一直用的都是FLBOOK在线制…

【飞桨星河社区五周年线下工坊-杭州站】

? 欢迎大家参加杭州极客工坊&#xff0c;深入了解大模型前沿技术和创新应用&#xff0c;一站式体验AI原生应用开发? 精彩议程敬请期待&#xff5e; ? 时间&#xff1a;2023年12月3日 14:00-17:30 ? 地点&#xff1a;杭州西湖区花蒋路3号西溪润泽园度假酒店 ? 主题&#xf…

TikTok革新挑战者:全球小众创作者的崛起

随着数字娱乐的快速发展&#xff0c;TikTok以其独特的短视频形式和开放的创作平台&#xff0c;成为全球范围内小众创作者崛起的推动者。本文将深入剖析TikTok在这一领域的革新&#xff0c;以及全球范围内小众创作者如何通过这一平台崭露头角。 TikTok&#xff1a;小众创作者的乐…

MES管理系统在智能工厂建设中的五个核心作用

随着制造业的数字化转型&#xff0c;智能工厂已经成为了现代工业生产的标志。而在智能工厂中&#xff0c;MES生产管理系统扮演着至关重要的角色。MES管理系统是一种用于管理和监控生产过程的软件系统&#xff0c;通过集成生产计划、资源调度、设备控制、质量管理等功能&#xf…

vue3-在自定义hooks使用useRouter 报错问题

文章目录 前言一、报错分析报错的Vue warn截图&#xff1a;查看文档 二、那么在hook要怎么引入路由呢&#xff1f; 前言 记录在vue3项目中&#xff0c;hook使用useRouter 报错问题 一、报错分析 报错的Vue warn截图&#xff1a; 警告 inject() can only be used inside setup…

zookeeper实操课程Acl 访问权限控制,命令行测试

本系列是zookeeper相关的实操课程&#xff0c;课程测试环环相扣&#xff0c;请按照顺序阅读测试来学习zookeeper。阅读本文之前&#xff0c;请先阅读----​​​​​​zookeeper 单机伪集群搭建简单记录&#xff08;实操课程系列&#xff09;。 阅读本文之前&#xff0c;请先阅读…

手机笔记工具怎么加密?

选择用手机笔记工具记事&#xff0c;大家可以记录很多学习笔记、读书笔记、私密日记等&#xff0c;手机作为随身携带的设备&#xff0c;记录相关的笔记比较快捷且方便&#xff0c;当手机笔记中记录的内容比较私密时&#xff0c;大家担心手机笔记会被别人误看&#xff0c;这时候…

跨境电商火爆出圈,自建商城平台如何评估商城源码的安全性?

近日&#xff0c;知名互联网评论人士阑夕的一则朋友圈刷屏。起因来自他在商家群里看到的一位跨境卖家后台晒单截图&#xff0c;说在速卖通上1天卖了快50万美元&#xff0c;比去年双11全周期还高&#xff0c;感叹“现在的跨境电商发展就如同10年前的天猫淘宝&#xff0c;潜力无限…

500元价位开放式耳机哪款好用、百元价位开放式耳机推荐

经常佩戴入耳式耳机的朋友应该都遇到过耳朵肿胀的感觉&#xff0c;这个时候&#xff0c;就是耳朵在告诉你&#xff0c;该休息一会了。如果耳朵里经常塞着耳机听歌&#xff0c;时间久了很容易引起听力衰退等问题&#xff0c;这是不可逆的伤害。各位朋友如果和我一样每天都戴着耳…

Find My电容笔|苹果Find My技术与电容笔结合,智能防丢,全球定位

随着平板电脑的流行&#xff0c;有不少厂商都投入到了电容笔的开发当中&#xff0c;现在的电容笔不仅在精度上有了提高&#xff0c;甚至在笔触和压感上的研究都有进步。电容笔是利用导体材料制作的具有导电特性、用来触控电容式屏幕完成人机对话操作用的笔&#xff0c;电容笔通…

「Verilog学习笔记」整数倍数据位宽转换8to16

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 根据时序图&#xff0c;数据是在第二个数据到来之后输出&#xff0c;当仅有一个数据到来时&#xff0c;不产生输出&#xff0c;所以内部需要一个指示信号valid_cnt&#xf…

用IDEA创建Java类时,自动生成作者、时间和版本号、注释等信息

1.File->settings… 2、Editor->File and Code Templates->Includes->File Header(双击)&#xff0c;然后在右边输入框内输入代码即可 代码可以直接复制 /*** Author 作者名* Date ${DATE} ${TIME}* version 1.0* 注释*/上边你也可以自定义生成的内容。