python亲密度_859. 亲密字符串(Python)
題目
難度:★★☆☆☆
類型:字符串
給定兩個由小寫字母構成的字符串 A 和 B ,只要我們可以通過交換 A 中的兩個字母得到與 B 相等的結果,就返回
true ;否則返回 false 。
提示
0 <= A.length <= 20000
0 <= B.length <= 20000
A 和 B 僅由小寫字母構成。
示例
示例 1
輸入: A = "ab", B = "ba"
輸出: true
示例 2
輸入: A = "ab", B = "ab"
輸出: false
示例 3
輸入: A = "aa", B = "aa"
輸出: true
示例 4
輸入: A = "aaaaaaabc", B = "aaaaaaacb"
輸出: true
示例 5
輸入: A = "", B = "aa"
輸出: false
解答
這里參考一個評論中的解法:
class Solution(object):
def buddyStrings(self, A, B):
# 長度不同直接false
if len(A) != len(B): return False
# 由于必須交換一次,在相同的情況下,交換相同的字符
if A == B and len(set(A)) < len(A): return True
# 使用 zip 進行匹配對比,挑出不同的字符對
dif = [(a, b) for a, b in zip(A, B) if a != b]
# 對數只能為2,并且對稱,如 (a,b)與(b,a)
return len(dif) == 2 and dif[0] == dif[1][::-1]
如有疑問或建議,歡迎評論區留言~
總結
以上是生活随笔為你收集整理的python亲密度_859. 亲密字符串(Python)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 北京环球影城背后的公司
- 下一篇: 地下城与勇士在哪儿刷镇魂