這篇文章將為大家詳細(xì)講解有關(guān)如何理解Python中LeetCode的親密字符串,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
創(chuàng)新互聯(lián)專注于大新企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站,購物商城網(wǎng)站建設(shè)。大新網(wǎng)站建設(shè)公司,為大新等地區(qū)提供建站服務(wù)。全流程按需設(shè)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)Title: 給定兩個(gè)由小寫字母構(gòu)成的字符串A和B,只要我們可以通過交換A中的兩個(gè)字母得到與B相等的結(jié)果,就返回true;否則返回false。 Input: A = "ab", B = "ba" Output: true From: LeetCode
1. A不等于B時(shí):
I. 長度必須保持一致
II. 組成元素保持一致
III. 兩者之間的差異值必須為2(ab、ba)
這里利用正則表達(dá)式逐一查詢B中相同位置的元素是否與A相同,返回一個(gè)由True、False組成的列表,F(xiàn)alse表示相同位置元素不一致,即有一個(gè)差異值,這里只要保證False數(shù)量為2即可
2. A等于B時(shí):
I. 不為空
II. 字符串內(nèi)耽擱元素重復(fù)數(shù)量至少為2 (aa、aba、abab)
這里先將A去重之后再查詢其中的元素在初始字符串中出現(xiàn)的次數(shù),返回由次數(shù)構(gòu)成的列表,只要列表元素大值大于等于2即可
代碼:
#!/usr/bin/env python # -*- coding:utf-8 -*- ''' @author: maya @software: Pycharm @file: intimateStrings.py @time: 2019/7/24 8:31 @desc: ''' ''' Title: 給定兩個(gè)由小寫字母構(gòu)成的字符串A和B,只要我們可以通過交換A中的兩個(gè)字母得到與B相等的結(jié)果,就返回true;否則返回false。 Input: A = "ab", B = "ba" Output: true From: LeetCode ''' import re class Solution(object): def buddyStrings(self, A, B): """ :type A: str :type B: str :rtype: bool """ equal_result = [True if re.search(data, B[A.index(data)]) else False for data in A] num_result = [len(re.findall(data, A)) for data in list(set(A))] return True if (A != B and (len(A) == len(B)) and (set(A) == set(B) and equal_result.count(False) == 2)) \ or (A == B != "" and max(num_result) >= 2) else False
關(guān)于如何理解Python中LeetCode的親密字符串就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。