选举

在民主国家,我们有很多选举。例如,我们必须为学校的班级代表投票,为新议会或新政府投票。

通常情况下,我们投票给一个候选人,也就是说,给出了一组合格的候选人。这是通过将选票投进投票箱来完成的。之后,必须计算出一个候选人得到了多少张选票(=选票)。

如果一名候选人获得绝对多数票,他将赢得这次选举。

你的任务

返回获胜者的名字。如果没有获胜者,则返回null(在Java和JavaScript中),None(在Python中),nil(在Ruby中),或*在C语言中。

任务描述

没有废弃的选票。

投票箱由一个未经排序的名字列表表示。列表中的每一个条目都对应着对这个名字的一票。你事先不知道这些名字(因为没有候选人)。

如果一个名字获得的票数超过n/2(n=所有票数,即n等于给定列表的大小),则该名字赢得选举。 例子 #3票给 “A”,2票给 “B”–>”A “赢得选举

getWinner([<span class="hljs-string">"A"</span>,&#xA0;<span class="hljs-string">"A"</span>,&#xA0;<span class="hljs-string">"A"</span>,&#xA0;<span class="hljs-string">"B"</span>,&#xA0;<span class="hljs-string">"B"</span>])&#xA0;==&#xA0;<span class="hljs-string">"A"</span>&#xA0;

2票给 “A”,2票给 “B”–>没有赢家

getWinner([<span class="hljs-string">"A"</span>,&#xA0;<span class="hljs-string">"A"</span>,&#xA0;<span class="hljs-string">"B"</span>,&#xA0;<span class="hljs-string">"B"</span>])&#xA0;==&#xA0;None&#xA0;

对每个名字投1票 –> 没有赢家

getWinner([<span class="hljs-string">"A"</span>,&#xA0;<span class="hljs-string">"B"</span>,&#xA0;<span class="hljs-string">"C"</span>,&#xA0;<span class="hljs-string">"D"</span>])&#xA0;==&#xA0;None&#xA0;

3票给 “A”,2票给 “B”,1票给 “C”

-> 没有赢家(“A “没有超过n/2=3的票数)

getWinner([<span class="hljs-string">"A"</span>,&#xA0;<span class="hljs-string">"A"</span>,&#xA0;<span class="hljs-string">"A"</span>,&#xA0;<span class="hljs-string">"B"</span>,&#xA0;<span class="hljs-string">"B"</span>,&#xA0;<span class="hljs-string">"C"</span>]&#xA0;)&#xA0;==&#xA0;None&#xA0;

请记住,投票列表可以很大(n

Original: https://blog.csdn.net/qq_40523298/article/details/127822493
Author: qq_40523298
Title: 选举

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/658705/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球