📜  根据给定的投票系统查找谁赢得了选举(1)

📅  最后修改于: 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官方网站与我们联系。