AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

P2569. 明日之星选举

简单通过率 52% · 提交 118 · 通过 61
哈希表排序模拟

小慕在负责一个“明日之星”评选活动的投票统计模块。他收到的每张选票是一个字符串,例如"zhangsan,hanmei",表示这张票赞成zhangsan成为明日之星,反对hanmei成为明日之星。赞成和反对的人名之间用逗号(,)分隔。 现在,小慕需要根据所有选票,筛选出最终获得数最多的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

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
双机位C-明日之星选举 排序流程输入选票列表统计每人赞成票数统计每人反对票数按规则排序输出前N名排序规则示例1. 赞成票多者优先2. 赞成票相同,反对票少者优先3. 两者相同,按名字字典序升序例子:zhangsan: 赞成2, 反对1lisi: 赞成2, 反对2wangwu: 赞成1, 反对0排序结果:zhangsan, lisi, wangwu若N=2,输出:zhangsan,lisi
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「明日之星选举」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。