本题可以使用哈希表进行统计。
由于班级中可能存在重名学生,需要先按照题目约定生成合法候选人姓名:
姓名1;姓名2;9 月份开学,小学某班级要举行班长选举,全班 1 人 1 票把心目中的班长人选姓名写在投票纸上。最终得票最多的当选班长,如果票数相等,按姓名字母顺序靠前的人当选班长。
投票约定:
1、若学生间存在重名,首个同学按原名,后面的携带 +n 编号,例如李伟,李伟 1,李伟 2。
2、若选票中书写的名字不存在,视为废票(也适用于约定 1)。
3、若出现票数多于全班人数,本次票选无效,即选举失败。
4、若有人当选则认为选举成功,没人当选,则认为选举失败。
1、全班学生姓名字符串集合。
2、全部投票数据字符串集合。
1、若选举成功,给出班长的姓名(重名的情况需要按照上面约定 1 输出)。
2、若选举失败,返回 "Invalid election."。
输入
["Zhangsan", "Lisi", "Wangwu"],["Zhangsan", "Lisi", "Zhangsan"]
输出
"Zhangsan"
说明
3 个同学中 Zhangsan 得了2 票,Lisi 得 1 票,Zhangsan 票数最高,因此当选班长。
输入
["Zhangsan", "Lisi", "Wangwu"],["Zhangsan", "Zhaoliu", "Zhaoliu"]
输出
"Zhangsan"
说明
Zhangsan 得 1 票,Zhaoliu 得了 2 票,但是并不是班集成员,因而 Zhaoliu 的选票无效,Zhangsan 当选班长。
输入
["Zhangsan", "Lisi", "Wangwu", "Zhangsan"],["Zhangsan0", "Zhangsan0", "Zhangsan1", "Zhangsan0"]
输出
"Zhangsan1"
说明
存在重名的 Zhangsan,按规则投票时,前后 2 个张三分别需要写 Zhangsan 和 Zhangsan1。而实际投票有 3 票是 Zhangsan0,1 票 Zhangsan1,由于 Zhangsan0 是不规范的选票,因此 Zhangsan1 当选班长。