【发布时间】:2020-06-18 00:46:47
【问题描述】:
我必须列出我的输入, a = [0,1,0,1] 和 b = [1,0,1,0]
注意:两个列表的元素都只有 0 和 1。如果不能通过交换使它们都相同,那么我将打印 -1。如果开始时相同,我将打印 0,如果不相同则, 我想做 a == b,在这种情况下,我需要最少 2 次交换。 第一个交换将是 a 的第 0 个索引和 a 的第一个索引和 第二次交换将是 a 的第二个索引和 a 的第三个索引。 之后 a 将与 b 相同。
这是我的代码:
def xx(a,b):
move = 0
if a == b:
print(0)
else:
if len(a) == 1 and len(a) == len(b):
print(-1)
else:
for i in range(len(a)):
if a[i] != b[i]:
j = a.index(b[i])
a[i] = a[j]
move += 1
count_swap = move // 2
print(count_swap)
a = list(map(int,input().split()))
b = list(map(int,input().split()))
xx(a,b)
是否有任何有效的方法来获取交换计数?
输入:
0 1 0 1
1 0 1 0
输出:
2
输入:
0 1 0
1 0 0
输出:
1
输入:
0
1
输出:
-1
【问题讨论】:
标签: python python-3.x list compare-and-swap