Python-----练习300例(2)
1.问题
根据N名运动员得分,找到相对等级和获得的最高分前三名的人,分别获得金银铜,N是正整数,而且不超过10000 ,所有运动员的成绩都是独一无二的。
2.问题实例
输入[5,4,3,2,1],输出['金牌‘,‘银牌’,‘铜牌’,‘第四名’,'第五名‘],前三名运动员得分较高,根据得分依据获得金银铜牌,对于最后两名运动员给出相应等级。
3.代码解决
class Solution:
def findrelativeranks(self,nums):
score={}
for i in range(len(nums)):
score[nums[i]]=i
sortedscore=sorted(nums,reverse=True)
answer=[0]*len(nums)
for i in range(len(sortedscore)):
res=str(i+1)
if i==0:
res='金牌'
if i==1:
res='银牌'
if i==2:
res='铜牌'
answer[score[sortedscore[i]]]=res
return answer
#主函数
if __name__=='__main__':
num=[5,4,3,2,1]
s=Solution()
print('输入:',num)
print('输出:',findrelativeranks(num))
代码答案仅供参考