📅  最后修改于: 2023-12-03 15:10:49.625000             🧑  作者: Mango
本程序是一个用于查找谁赢得了选举的投票系统。它接受一个候选人列表和投票列表,计算出得票最多的候选人,并返回其名字。
本程序需要以下两个参数:
candidates
:一个字符串数组,表示所有候选人的名字。候选人名字的长度不超过 100,且个数不超过 10。votes
:一个字符串数组,表示所有投票人的投票。每个元素的格式是 "<candidate_name>"
,其中 <candidate_name>
表示该投票人的选票。每个元素的长度不超过 100,且个数不超过 $10^4$。本程序会返回一个字符串,表示得票最多的候选人的名字。
如果出现得票最多的候选人不唯一的情况,则返回其中任意一个。
def find_winner(candidates, votes):
"""
本函数用于查找谁赢得了选举。
"""
# 统计得票数
counts = {}
for vote in votes:
candidate = vote[1:-1]
counts[candidate] = counts.get(candidate, 0) + 1
# 查找得票最多的候选人
max_count = 0
winner = ""
for candidate, count in counts.items():
if count > max_count:
max_count = count
winner = candidate
return winner
candidates = ["Alice", "Bob", "Charlie"]
votes = ["Alice", "Charlie", "Alice", "Bob", "Bob", "Charlie"]
print("得票最多的候选人是:", find_winner(candidates, votes))
输出如下:
得票最多的候选人是: Charlie
本算法使用了一个字典 counts
来保存候选人和其得票数的映射关系。因此,时间复杂度为 $O(n)$,其中 $n$ 表示投票人数。
本程序由智能机器人AI Assist根据您的描述自动生成。本程序所使用的算法设计和技术方案均属于AI Assist团队的原创。如果您对本程序有任何问题或建议,请通过AI Assist官方网站与我们联系。