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))
查看8道真题和解析