当前位置: 首页 > news >正文

华为OD机考双机位C卷 - 明日之星选举 (Java Python JS GO C++ C)

# 明日之星选举

2026华为OD机试双机位C卷 - 华为OD上机考试双机位C卷

华为OD机试双机位C卷真题目录点击查看: 【全网首发】2026华为OD机位C卷 机考真题题库含考点说明以及在线OJ(OD上机考试双机位C卷)

题目描述

给定一组选票votes[],vote[i]代表第i张选票的内容,包含一个字符串"zhangsan,hanmei",表示推荐zhangsan成为明日之星,反对hanmei成为明日之星。赞成或返回使用逗号(,)分割。

给定一个数组n,表示最后将筛选赞成票最多的n个人,如果赞成票相同,则反对票越少,排序越靠前;如果赞成票和反对票都相同,则按照姓名字典序升序排序。

注意:

  • 1 <= votes.length <= 500
  • 1 <= votes[i].length <= 20
  • vote[i]由小写字母和逗号组成,且最多只有一个逗号。
  • vote[i]中赞成票必选,反对票可选。
  • n的取值范围为[1, 不同姓名的数量]

输入描述

第一行输入为M,表示选票的数量,其中1 <= M <= 500

接下来M行为选票具体内容

最后一行输入为N,表示最终当选明日之星的人员个数1 <= N <= 不同姓名的数量

输出描述

输出一个字符串,返回当选的N个人的姓名,顺序排列,逗号分割。

示例1

输入

6
zhangsan,hanmei
zhangsan,lisi
lisi
lisi
wangwu
hanmei
2

输出

zhangsan,lisi

说明

示例2

输入

4
zhangsan,lisi
lisi,wangwu
wangwu,qianliu
qianliu,zhangsan
2

输出

lisi,qianliu

说明

zhangsan:1赞成,1反对
lisi:1赞成,1反对
wangwu:1赞成,1反对
qianliu:1赞成,1反对
票数情况相同,按照字典序升序,返回lisi,qianliu

解题思路

1) 抽象问题与数据口径

  • 每条投票是一个字符串:
    • 只有一个名字:表示该名字获得 1 票赞成
    • 形如 A,B:表示 A 获得 1 票赞成,同时 B 获得 1 票反对
  • 同一个名字可能在不同投票中既出现为赞成对象,也出现为反对对象;两种票数都要分别累计。
  • 候选名单取所有在任意投票中出现过的名字(赞成或反对出现都算)。

2) 统计策略

为每个名字维护两项计数:

  • 赞成票数
  • 反对票数

处理每条投票时:

  • 判断是否包含分隔符(逗号):
    • 若有:分成左右两段名字 AB,分别做:
      • A.赞成++
      • B.反对++
    • 若无:整条就是名字 A,做:
      • A.赞成++
  • 任何名字第一次出现时,都要在统计结构中“建档”,初始两项计数为 0。

实务细节(输入更健壮)
对切分后的名字做去首尾空格,避免 "Alice, Bob"Bob 统计成带空格的不同名字。

3) 排序规则(关键)

将所有名字按以下优先级排序:

  1. 赞成票数:从大到小(降序)
  2. 反对票数:从小到大(升序)
  3. 名字字典序:从小到大(升序,用于前两项完全相同时打破平局)

4) 输出规则

  • 排序后取前 N 个名字。
  • 按要求用逗号连接输出(如:name1,name2,name3)。
  • N 大于总人数,则输出全部名字。

这套方法的核心就是:双计数统计 + 按(赞成降、反对升、字典升)的多关键字排序 + 取前 N 输出

http://www.jsqmd.com/news/468345/

相关文章:

  • Qt多线程安全更新UI的两种高效实现方式
  • 钉钉打卡风控机制深度剖析与逆向实战
  • OpenClaw For Windows本地电脑对接飞书机器人
  • Spring AOP ‌不能拦截 protected 方法‌
  • RISC-V WFI指令:从低功耗休眠到中断唤醒的软件实践
  • InstructPix2Pix实战:5分钟学会用AI指令编辑图片(附Stable Diffusion配置)
  • 手把手教你连接迈瑞BeneVision监护仪:从设备联网到移动端数据查看全流程
  • IoT设备防克隆方案:基于动态HMAC的UID认证系统设计
  • SAP邮件配置全攻略:从SCOT到SMTP的保姆级教程(含RZ10设置)
  • 不挨饿也能稳步瘦?2026热门减肥代餐权威测评,腰纪线助力代谢平衡实现长效控重 - 企业推荐官【官方】
  • 深圳搬家不用愁!风速达深耕全域,2026年亲测靠谱的本地搬家专家 - 企业推荐官【官方】
  • Simulink与C语言的深度对话:S-Function实战指南
  • 第五章 ISO15118-2协议分析--5.1 高效学习方法与实战技巧
  • 华为OD机考双机位C卷 - 日志解析(Java Python JS GO C++ C)
  • C语言迷你HTTP服务器实战:如何处理GET请求和静态资源
  • 广州佛山外贸网站建设案例大揭秘:2026 公司出海开发要点 - 企业推荐官【官方】
  • SQL实战:从零开始用MySQL和MariaDB搭建个人数据库(附避坑指南)
  • FPGA实战:如何用Verilog实现高效数控振荡器(NCO)?附完整代码
  • 使用Inno Setup将Qt应用打包为专业安装包的完整指南
  • 全球90米分辨率MERIT DEM数据下载与处理全攻略(附EGM96转椭球高教程)
  • 从BVH到FBX:Blender中动捕数据映射的5个实用技巧(含Mixamo模型适配指南)
  • Next.js水合错误排查指南:浏览器插件竟是罪魁祸首?
  • 不用IE也能搞定!海康威视Web3.0插件在现代浏览器中的兼容性解决方案
  • 服务器主板更换后电子标签同步工具V1.0使用指南
  • 极限求解的实用技巧与常见误区解析
  • Vue2中provide和inject的5个实战技巧,告别props层层传递
  • lxml库深度解析:etree和XPath在Python爬虫中的高效应用技巧
  • 博途AI助手实战:5分钟搞定梯形图代码自动生成(附避坑指南)
  • 用pgvector构建你的第一个向量数据库:从安装到实战查询
  • 开发者必备:10个提升技能的国外优质在线学习平台