這篇文章將為大家詳細講解有關(guān)如何理解Python中LeetCode的親密字符串,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
Title: 給定兩個由小寫字母構(gòu)成的字符串A和B,只要我們可以通過交換A中的兩個字母得到與B相等的結(jié)果,就返回true;否則返回false。 Input: A = "ab", B = "ba" Output: true From: LeetCode
1. A不等于B時:
I. 長度必須保持一致
II. 組成元素保持一致
III. 兩者之間的差異值必須為2(ab、ba)
這里利用正則表達式逐一查詢B中相同位置的元素是否與A相同,返回一個由True、False組成的列表,F(xiàn)alse表示相同位置元素不一致,即有一個差異值,這里只要保證False數(shù)量為2即可
2. A等于B時:
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òu)成的字符串A和B,只要我們可以通過交換A中的兩個字母得到與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)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
文章題目:如何理解Python中LeetCode的親密字符串-創(chuàng)新互聯(lián)
瀏覽地址:http://jinyejixie.com/article26/jsgjg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、外貿(mào)建站、微信小程序、做網(wǎng)站、關(guān)鍵詞優(yōu)化、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容