鉴于a=[123,45]
和b=[232,64]
,我们需要确定从a
到b
的移动
a[0]
至b[0]
导致:
increment by 1(1 to 2),
increment by 1(2 to 3),
decrement by 1(3 to 2)
所以3
总共移动了(1+1+1)
。
a[1]
至b[1]
导致
increment by 2(4 to 6),
decrement by 1(5 to 4)
3
总共移动(2 + 1)
最小移动次数= 3 + 3
= 6
。
因此,对于给定的2个列表,我们需要找到到达下一个列表的总移动量?
我的程序有误在下面
def sub(a,b):
s = 0
for x, y in zip(a,b):
s += x-y
return s
sub([123,45],[232,64])
-128
答案 0 :(得分:3)
这应该有效:
def sub(a,b):
s = 0
for x, y in zip(a,b):
s += sum(abs(int(n) - int(m)) for n, m in zip(str(x), str(y)))
return s
print(sub([123,45],[232,64]))
输出:
6