标签:either turn sum als style arrays ping ret def
Two arrays are called similar if one can be obtained from another by swapping at most one pair of elements in one of the arrays.
Given two arrays a
and b
, check whether they are similar.
Example
For a = [1, 2, 3]
and b = [1, 2, 3]
, the output should beareSimilar(a, b) = true
.
The arrays are equal, no need to swap any elements.
For a = [1, 2, 3]
and b = [2, 1, 3]
, the output should beareSimilar(a, b) = true
.
We can obtain b
from a
by swapping 2
and 1
in b
.
For a = [1, 2, 2]
and b = [2, 1, 1]
, the output should beareSimilar(a, b) = false
.
Any swap of any two elements either in a
or in b
won‘t make a
and b
equal.
我的解答:
1 def areSimilar(a, b): 2 count = 0 3 if sorted(a) == sorted(b): 4 for i in zip(a,b): 5 if i[0] != i[1]: 6 count +=1 7 if count > 2: 8 return False 9 else: 10 return True 11 else: 12 return False
膜拜大佬:
def areSimilar(A, B): return sorted(A)==sorted(B) and sum([a!=b for a,b in zip(A,B)])<=2
标签:either turn sum als style arrays ping ret def
原文地址:https://www.cnblogs.com/YD2018/p/9363203.html