码迷,mamicode.com
首页 > 其他好文 > 详细

Code Signal_练习题_Are Similar?

时间:2018-07-24 23:51:48      阅读:383      评论:0      收藏:0      [点我收藏+]

标签: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 be
      areSimilar(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 be
      areSimilar(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 be
      areSimilar(a, b) = false.

      Any swap of any two elements either in a or in b won‘t make aand 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
View Code

 

Code Signal_练习题_Are Similar?

标签:either   turn   sum   als   style   arrays   ping   ret   def   

原文地址:https://www.cnblogs.com/YD2018/p/9363203.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!