1510. 亲密字符串(回顾)

Posted yunxintryyoubest

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1510. 亲密字符串(回顾)相关的知识,希望对你有一定的参考价值。

1510. 亲密字符串

中文English

给定两个由小写字母构成的字符串A 和B,只要我们可以通过交换A中的两个字母得到与B相等的结果,就返回true;否则返回false

样例

Example 1:

Input: A = "ab", B = "ba"
Output: true

Example 2:

Input: A = "ab", B = "ab"
Output: false

Example 3:

Input: A = "aa", B = "aa"
Output: true

Example 4:

Input: A = "aaaaaaabc", B = "aaaaaaacb"
Output: true

Example 5:

Input: A = "", B = "aa"
Output: false

注意事项

1.0 <= A.length <= 20000
2.0 <= A.length <= 20000
3.A and B consist only of lowercase letters.

 
输入测试数据 (每行一个参数)如何理解测试数据?
class Solution:
    """
    @param A: string A
    @param B: string B
    @return: bool
    """
    ‘‘‘
    大致思路:
    1.首先先判断长度是否相等,如果不相等,直接return Flase。初始化l = [],v =[],dic ={},根据字符计数。flag=Flase,如果当前字符大于1,则flag=True.
    2.然后循环A,如果A[i] != B[i]的话,则写入到l和v里面,如果l长度大于2的话,则reurn Flase。
    3.根据对应的索引在B中和v进行判断,如果相等,则返回True,否则False。
    4.如果是c==1,并且A==B的话,则表示只有一个字符,则返回True,否则False(还有特殊情况aa,aa 和ab,ab考虑。)
    ‘‘‘
    def buddyStrings(self, A, B):
        
        if len(A) != len(B):
            return False
        
        l,v =[],[]
        dic = {}
        flag = False
        for i in range(len(A)):
            ##字符计数,只要有两个相等的即可判断,比如abacd,abacd。
            if A[i] not in dic:
                dic[A[i]] = 1
            else:
                dic[A[i]] += 1
                if dic[A[i]] > 1:
                    flag = True

            if A[i] != B[i]:
                l.append(i)
                v.append(A[i])
                if len(l) > 2:
                    return False
        #aa,aa的情况
        if A == B:
            if flag == True:
                return True
            else:
                return False


        if l != []:
            if B[l[0]] == v[1] and B[l[1]] == v[0]:
                return True
            return  False

 

以上是关于1510. 亲密字符串(回顾)的主要内容,如果未能解决你的问题,请参考以下文章

001:我和Python的第一次亲密接触

从活动中更改片段的变量值

onRequestPermissionsResult 在片段中不起作用

《LeetCode之每日一题》:202.亲密字符串

片段未附加到上下文 - 延迟的 UI 更改

亲密字符串之Javascript解法