#刷题交流# 抢红包的游戏:def solution(n: int, s: list, x: list) -> list:
# 将名字和金额打包成元组列表,记录原始顺序
participants = [(s[i], x[i], i) for i in range(n)]
# 按金额降序排序,如果金额相同则按输入顺序排序(通过索引)
participants.sort(key=lambda item: (-item[1], item[2]))
# 提取排序后的名字
return [participant[0] for participant in participants]
if __name__ == '__main__':
print(solution(4, ["a", "b", "c", "d"], [1, 2, 2, 1]) == ['b', 'c', 'a', 'd'])
print(solution(3, ["x", "y", "z"], [100, 200, 200]) == ['y', 'z', 'x'])
print(solution(5, ["m", "n", "o", "p", "q"], [50, 50, 30, 30, 20]) == ['m', 'n', 'o', 'p', 'q'])