问题描述
根据N名运动员得分,找到相对等级和获得最高分前三名的选手,分别授予金牌、银牌、铜牌,对第三名以后的选手只给出名次。所有运动员的成绩都保证是独一无二的。
示例
输入 [10, 9, 8, 7, 6, 5, 4] ,输出 ['Gold Medal', 'Silver Medal', 'Bronze Medal', 4, 5, 6, 7]
代码实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
def find_relative_ranks(scores): scores.sort(reverse=True) rank_list = [] for i in range(len(scores)): if i == 0: rank_list.append('Gold Medal') elif i == 1: rank_list.append('Silver Medal') elif i == 2: rank_list.append('Bronze Medal') else: rank_list.append(str(i+1)) return rank_list scores = [10, 9, 8, 7, 6, 5, 4] print("输入:", scores) print("输出:", find_relative_ranks(scores)) |
运行结果
1 2 |
输入: [10, 9, 8, 7, 6, 5, 4] 输出: ['Gold Medal', 'Silver Medal', 'Bronze Medal', '4', '5', '6', '7'] |