← 返回题库
初级

排名

未完成
初级参考 完整示例代码供参考,建议自己理解后重新输入
def solve(data):
    lines = data.split(';')
    students = []
    for line in lines:
        parts = line.split(',')
        sid = parts[0]
        score = int(parts[1])
        students.append((sid, score))
    students.sort(key=lambda x: (-x[1], x[0]))
    rank = 1
    for i, (sid, score) in enumerate(students):
        if i > 0 and score < students[i-1][1]:
            rank = i + 1
        print(f'{rank} {sid} {score}')

示例

输入
solve('A001,90;A002,95;A003,90')
期望输出
1 A002 95
2 A001 90
2 A003 90
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码