2022届计算机学院学生会主席投票选举系统 - Python编程实现
2022届计算机学院学生会主席投票选举系统 - Python编程实现
背景:
2022届计算机学院学生会主席投票选举工作即将开始,为了提高效率,学院决定采用电脑统计选票的方式进行投票。本次投票将采用以下流程:
- 当投票选举正式开始后,同学们将排队一一走到电脑前,投上自己神圣的一票:在电脑前输入一个姓名,然后输入回车表示确认。
- 当所有同学投票结束后,工作人员只需要输入'*'并回车确认,表示投票结束。
- 电脑立即显示出得票最高的同学姓名,该同学将当选为新一届计算机与通信工程学院学生会主席。
问题:
假定票数相等时先输入的姓名为主席。选举大会的准备工作正在紧张进行,编程统计投票的工作就交给你了。本题为单实例测试。
输入:
输入包含多行,每行是一个由小写英文字母组成的字符串,表示一个姓名,遇到'*'时表示输入结束。你可以假定,参加投票学生的人数不超过200人,每个学生姓名字符串的长度小于20。
输出:
输出为一个字符串,当选为学生会主席的学生姓名。
思路:
使用字典记录每个候选人的得票数,遍历输入的姓名,将每个候选人的得票数加一,最后找到得票最高的候选人即可。
Python 代码:
votes = {} # 使用字典记录每个候选人的得票数
while True:
name = input()
if name == '*':
break
if name in votes:
votes[name] += 1
else:
votes[name] = 1
# 找到得票最高的候选人
max_votes = 0
winner = ''
for name, count in votes.items():
if count > max_votes:
max_votes = count
winner = name
print(winner)
代码解释:
- 使用
votes字典记录每个候选人的得票数,键是候选人的姓名,值是得票数。 - 使用
while True循环读取输入,直到遇到'*'结束。 - 如果输入的姓名已经存在于
votes字典中,则将其得票数加一;否则,将该姓名添加到字典中,并将其得票数初始化为1。 - 使用循环遍历
votes字典,找到得票最高的候选人,并将其姓名输出。
示例输入:
john
mike
john
mike
mary
john
*
示例输出:
john
原文地址: https://www.cveoy.top/t/topic/ojJC 著作权归作者所有。请勿转载和采集!