python交换位置问题

交换

http://www.nowcoder.com/questionTerminal/26a114cbaba747f19e78bb6e270af6d0

将输入从小到大排序,作为正确的位置
用一个seat字典储存当下每个人的位置,key为学号,value为位置
遍历每个人,如果站错位置,就在seat中查找正确的人当下的位置,交换位置,并将次数加1

n = int(input())
data = []
for _ in range(n):
    x = int(input())
    data.append(x)


sorted_data = sorted(data)
seat = {x:i for (i,x) in enumerate(data)}
ans = 0
for i in range(n):
    if data[i] != sorted_data[i]:
        j = seat[sorted_data[i]]
        data[i],data[j] = data[j],data[i]
        seat[data[i]], seat[data[j]] = i, j
        ans += 1
print(str(ans))
全部评论

相关推荐

点赞 评论 收藏
转发
投递完美世界等公司6个岗位 >
点赞 评论 收藏
转发
宇信外包 Java 7.5k
点赞 评论 收藏
转发
4 收藏 评论
分享
牛客网
牛客企业服务