华为OD机试真题 JavaScript 实现【记票统计】【牛客练习题】

news2024/9/28 13:27:42

在这里插入图片描述

一、题目描述

请实现一个计票统计系统。你会收到很多投票,其中有合法的也有不合法的,请统计每个候选人得票的数量以及不合法的票数。

(注:不合法的投票指的是投票的名字不存在n个候选人的名字中!!)

数据范围:每组输入中候选人数量满足 1≤n≤100 ,总票数量满足 1≤n≤100

二、输入描述

第一行输入候选人的人数n,第二行输入n个候选人的名字(均为大写字母的字符串),第三行输入投票人的人数,第四行输入投票。

三、输出描述

按照输入的顺序,每行输出候选人的名字和得票数量(以" : "隔开,注:英文冒号左右两边都有一个空格!),最后一行输出不合法的票数,格式为"Invalid : "+不合法的票数。

四、解题思路

  1. 读取输入,首先读取候选人的人数numOfCandidates;
  2. 使用in.nextLine()读取候选人的名字,并将其存储在字符串数组nameOfCandidates中;
  3. 读取投票人的人数numOfVotes;
  4. 使用in.nextLine()读取投票结果,并将其存储在字符串数组voteFor中;
  5. 创建一个HashMap对象dict用于存储候选人的得票数量,其中候选人的名字作为键,初始值为0;
  6. 初始化不合法的票数invalid为0;
  7. 遍历候选人的名字,将其作为键放入dict中,并将值初始化为0;
  8. 遍历投票结果,对每张票进行判断;
    • 如果票的名字不在dict的键集合中,即为不合法的票,将invalid加1;
    • 如果票的名字在dict的键集合中,将对应的候选人的得票数量加1;
  9. 创建一个StringBuilder对象res用于存储输出结果;
  10. 遍历候选人的名字,按照输入的顺序输出候选人的名字和得票数量,格式为"候选人名字 : 得票数量",并将每行结果追加到res中;
  11. 将不合法的票数输出到res的末尾,格式为"Invalid : 不合法的票数";
  12. 将res转换为字符串并输出;
  13. 重复步骤1到步骤12,直到没有更多的输入;

五、JavaScript算法源码

function calculate(input,voteFors) {
	// 候选人的名字
    const nameOfCandidates = input.split(' ').filter((name) => name !== '');
	// 投票结果
    const voteFor = voteFors.split(' ').filter((name) => name !== '');

	// 候选人的名字作为键,候选人的得票数量作为value
    const dict = new Map();
    let invalid = 0;

	// 遍历候选人的名字
    nameOfCandidates.forEach((name) => {
        dict.set(name, 0);
    });

	// 遍历投票结果
    voteFor.forEach((vote) => {
        if (!dict.has(vote)) {
            invalid++;
        } else {
            const pre = dict.get(vote);
            dict.set(vote, pre + 1);
        }
    });

    let res = '';
    nameOfCandidates.forEach((name) => {
        res += `${name} : ${dict.get(name)}\n`;
    });
    res += `Invalid : ${invalid}\n`;

    return res;
}

六、效果展示

在这里插入图片描述


🏆下一篇:华为OD机试真题 JavaScript 实现【相对开音节】【2022Q4 100分】,附详细解题思路

🏆本文收录于,华为OD机试(JavaScript)真题(A卷+B卷)

每一题都有详细的答题思路、详细的代码注释、样例测试,订阅后,专栏内的文章都可看,可加入华为OD刷题群(私信即可),发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

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

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

相关文章

JavaScript DOM

1、DOM介绍 DOM(Document Object Model):文档对象模型。 将 HTML 文档的各个组成部分,封装为对象。借助这些对象,可以对 HTML 文档进行增删改查的动态操作。 1.1、Element元素的获取操作 具体方法 方法名说明getElementById (id 属性值)根…

原因分析必知必会的十大要点

原因分析是对选定的现象进行全面深入的研究,找到现象背后的真正原因与深层次原因,然后采取合适的措施纠正问题、预防问题。如果没有找到真正的根因就采取措施,往往事倍功半,浪费了投入。那么在原因分析时,有哪些成功要…

adb 导入导出安卓设备里面的apk和文件

安卓设备上导出apk到电脑 : 第一条指令查:adb shell pm list package -3 //列出所有非系统三方应用如下 package:com.sangfor.vpn.client.phonepackage:com.spd.mdm.other.funcpackage:com.supcon.supplant第二条指令查路径:adb shell pm pa…

容器(第七篇)docker-consul

consul服务器: 1. 建立 Consul 服务 mkdir /opt/consul cp consul_0.9.2_linux_amd64.zip /opt/consul cd /opt/consul unzip consul_0.9.2_linux_amd64.zip mv consul /usr/local/bin/ //设置代理,在后台启动 consul 服务端 consul agent \ -server \…

python安装后的几个默认目录问题

python.exe位置 C:\Users\dao\AppData\Local\Programs\Python\Python311 pip默认安装的文件位置 C:\Users\dao\AppData\Local\Programs\Python\Python311\Lib\site-packages

51单片机数码管秒表仿真设计详解

51单片机数码管秒表仿真 功能说明&#xff1a; 1、4位数码管显示 2、开始暂停清零按钮控制 3、51最小单片机系统电路 4、计时功能&#xff0c;0到99.99秒计时 运行效果 #include<reg52.h>#define uchar unsigned char #define uint unsigned intuchar code Tab0[] …

山西电力市场日前价格预测【2023-06-13】

日前价格预测 预测明日&#xff08;2023-06-13&#xff09;山西电力市场全天平均日前电价为383.16元/MWh。其中&#xff0c;最高日前电价为621.63元/MWh&#xff0c;预计出现在20: 45。最低日前电价为249.69元/MWh&#xff0c;预计出现在12: 45。 以上预测仅供学习参考&#x…

京东购物车分页方案探索和落地 | 京东云技术团队

随着京东购物车应用场景的丰富化和加车渠道的多元化&#xff0c;京东购物车的商品容量从2015年至今一直在逐步增加。 2015年京东购物车由80件扩容到120件&#xff1b;2018年由120件扩容到150件&#xff1b;2020年由150件扩容到180件&#xff1b;2021年京东PLUS会员扩容到了220…

Q1净亏损1.35亿元,4G增长乏力「困扰」车规通讯模组龙头

“汽车前装从4G到5G的切换需要一定的时间&#xff0c;现阶段&#xff0c;5G的价格更高&#xff0c;国内客户从4G向5G的转换会受到一些短期影响。”这是车载通讯模组市场龙头企业—移远通信在近日投资者互动上的公开表态。 4G渗透率趋于稳定&#xff0c;5G增速不及预期&#xff…

SSH科普

参考来源&#xff1a;https://zhuanlan.zhihu.com/p/323322650 目录 1. 什么是SSH&#xff1f;2. SSH登录原理3. SSH基本用法4. SSH远程登录实例5. SSH端口转发1. 转发的参数2. 本地转发3. 远程转发 6. SSH的远程操作7. SSH的本地转发8. SSH的远程转发利用远程转发&#xff0c…

国内唯一!腾讯入选全球零信任厂商全景图

近日&#xff0c;国际权威机构Forrester发布《The Zero Trust Platforms Landscape, Q2 2023》&#xff08;以下简称“报告”&#xff09;&#xff0c;对全球29家零信任方案供应商进行了综合性评估。腾讯凭借iOA零信任安全解决方案入选报告&#xff0c;成为了国内唯一入选的零信…

ChatGPT 未来会对游戏行业带来哪些影响?

ChatGPT的出现&#xff0c;为整个游戏行业带来了新的思考。 ChatGPT是由微软发布的一个大型语言模型&#xff0c;在被训练之后能够进行对话式文本生成&#xff0c;目前已在多个领域取得了不小的进展&#xff0c;包括聊天机器人、智能客服等。 作为一款大型语言模型&#xff0c…

黑客和网络安全工程师有什么区别?如何成为一名网络安全工程师?

经常有小伙伴把黑客和网络安全工程师弄混&#xff0c;黑客和网络安全工程师是两种不同的职业&#xff0c;尽管它们都与计算机安全有关。本篇文章将告诉你黑客和网络安全工程师的区别并且教你如何成为一名网络安全工程师。 黑客和网络安全工程师有什么区别&#xff1f; 黑客通…

PyTorch 深度学习入门

&#x1f482; 个人网站:【 海拥】【萌怪大冒险】【2048】&#x1f91f; 风趣幽默的前端学习课程&#xff1a;&#x1f449;28个案例趣学前端&#x1f485; 想寻找共同学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼大军】&#x1f4ac; 免费且实用的计算机相关知识题库&…

比亚迪首谈智驾进展:年内量产大算力域控,感知大模型上车

作者 | 马波 编辑 | 德新 前不久&#xff0c;HiEV独家报道了比亚迪在智能驾驶领域的最新量产计划 。 比亚迪将会在今年第三季度&#xff0c;落地基于地平线征程5的高阶智驾方案&#xff0c;首项高阶智驾功能为高速导航辅助驾驶DNP&#xff0c;首发车型大概率是汉。 王传福曾…

[centos]centos7卸载显卡驱动

找到显卡驱动.run文件&#xff1a; sudo ./NVIDIA-Linux-x86_64-460.106.00-k80.run --uninstall 上面是通过run文件卸载可以很容易卸载干净&#xff0c;强烈推荐这个方法&#xff0c;如果没有可以使用命令行 yum remove nvidia-* rpm -qa |grep -i nvid|sort yum remove kmod…

跨域问题详解

本文从web开发者角度&#xff0c;浅谈跨域原理&#xff0c;总结处理方法。为什么会有跨域问题&#xff1f; 简单来说&#xff0c;浏览器不允许访问除当前页面所在源之外的其他源。 协议、域名、端口组成同一源&#xff08;origin&#xff09; 在前后端不分离的单体应用中&#…

97.实战网页构建推荐信部分第二节

上节课&#xff0c;我们的推荐信完成如下 ● 接下来我们就来完成&#xff0c;我们未完成的内容吧&#xff0c;为其添加画廊 ● 我们将图片全部添加上 ● 然后通过grid构建一个3*4的网格摆放图片 .gallery {display: grid;grid-template-columns: repeat(3, 1fr);grid-tem…

React - Geek-PC项目 文档

一款后台管理项目 - React-geek-PC 项目介绍 ● 项目功能演示 - 登录、退出 - 首页 - 内容&#xff08;文章&#xff09;管理&#xff1a;文章列表、发布文章、修改文章● 技术 - React 官方脚手架 create-react-app - react hooks - 状态管理&#xff1a;mobx - UI 组件库…

【数据分享】2000-2021年全国1km分辨率的逐日PM2.5栅格数据

PM2.5作为最主要的空气质量指标&#xff0c;在我们日常研究中非常常用&#xff01;之前我们分享过由圣路易斯华盛顿大学大气成分分析组发布的网格分辨率为0.01 0.01的PM2.5栅格数据&#xff08;可查看之前推送的文章获悉详情&#xff09;&#xff1a; 1998-2020年全国省市三级…