zoukankan      html  css  js  c++  java
  • 859. 亲密字符串

     

    思路:
    1、若A和B都为空,返回False;
    2、若两串长度不同,返回False;
    3、若A和B相等, 只要有重复元素,返回True;
    4、若两串长度相同但不相等,统计不同字符的个数num,并记录其位置,若num>2,返回False;
    5、将A中不同的两个字符交换位置,与B相等,返回True。
     1 class Solution(object):
     2     def buddyStrings(self, A, B):
     3         """
     4         :type A: str
     5         :type B: str
     6         :rtype: bool
     7         """
     8         # A和B都为空,返回False
     9         if A == B == "":
    10             return False
    11         # 两串长度不同,返回False;
    12         if len(A) != len(B):
    13             return False
    14         # 若字符串相等, 只要有重复元素,返回True
    15         if A == B:
    16             for i, ch in enumerate(A):
    17                 if A.count(ch) != 1:
    18                     return True
    19                 else:
    20                     return False
    21         num = 0
    22         dif = [0] * len(A)
    23         for i, ch in enumerate(A):
    24             if ch != B[i]:
    25                 dif[num] = i
    26                 num += 1
    27         # 有两个以上的不同字符,不满足
    28         if num > 2:
    29             return False
    30         else:
    31             lista = list(A)
    32             lista[dif[0]], lista[dif[1]] = lista[dif[1]], lista[dif[0]]
    33             A = "".join(lista)
    34             if A == B:
    35                 return True
    36             else:
    37                 return False
    38 
    39 if __name__ == '__main__':
    40     solution = Solution()
    41     print(solution.buddyStrings("abcd", "abcd"))
     
  • 相关阅读:
    Flask 入门(五)
    Mac 系统root
    Flask 入门(四)
    Flask 入门(三)
    Flask 入门(二)
    Flask 入门(一)(Mac 系统)
    linux升级python2.7到3.7.0
    [20170825]11G备库启用DRCP连接3.txt
    [20170824]11G备库启用DRCP连接.txt
    [20170728]oracle保留字.txt
  • 原文地址:https://www.cnblogs.com/panweiwei/p/12697898.html
Copyright © 2011-2022 走看看