AlgoMooc
← 返回题库

N0030. 0527-小学生班长选举

简单通过率 86% · 提交 7 · 通过 6
哈希表

9 月份开学,小学某班级要举行班长选举,全班 1 人 1 票把心目中的班长人选姓名写在投票纸上。最终得票最多的当选班长,如果票数相等,按姓名字母顺序靠前的人当选班长。 投票约定: 1. 若学生间存在重名,首个同学按原名,后面的携带 +n 编号,例如李伟,李伟 1,李伟 2。 2. 若选票中书写的名字不存在,视为废票(也适用于约定 1)。 3. 若出现票数多于全班人数,本次票选无效,即选举失败。 4. 若有人当选则认为选举成功,没人当选,则认为选举失败。

输入描述

第一行给出全班同学名称集合 Q,空格分割 第二行给出选票数据集合,空格分割

输出描述

1. 若选举成功,给出班长的姓名(重名的情况需要按照上面约定 1 输出)。 2. 若选举失败,返回 "Invalid election."。

示例

示例 1

输入

3
Zhangsan Lisi Wangwu
3
Zhangsan Lisi Zhangsan

输出

Zhangsan

说明:3 个同学中Zhangsan得了2票 ,Lisi得1票,Zhangsan票数最高,因此当选班长

示例 2

输入

3
Zhangsan Lisi Wangwu
3
Zhangsan Zhaoliu Zhaoliu、

输出

Zhangsan

说明:Zhangsan得了1票 ,Zhaoliu得了2票,但是并不是班级成员,因而Zhaoliu的选票无效,Zhangsan 当选班长

示例 3

输入

4
Zhangsan Lisi Wangwu Zhangsan
4
Zhangsan0 Zhangsan0 Zhangsan1 Zhangsan0

输出

Zhangsan1

说明:存在重名的 Zhangsan,按规则投票时,前后 2 个张三分别需要写 Zhangsan 和 Zhangsan1。而实际投票有 3 票是 Zhangsan0,1 票 Zhangsan1,由于 Zhangsan0 是不规范的选票,因此 Zhangsan1 当选班长。

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

写完代码点「提交」,将对全部测试用例判题。