作者:
Meaverzt (Meaverzt)
2025-02-05 16:02:15題目:
有兩個字串a跟b
我們要檢查a在交換最多1個字元後會不會跟b相同
思路:
先檢查a b有幾個字元不一樣
因為不一樣的字元數是0或2才有可能交換後兩個字串相等
如果是0兩個就一樣了不用再檢查
是2的話就看a b不一樣的這兩個字元是不是剛好可以湊成兩對
看有沒有條件都滿足就是答案了
Code:
class Solution(object):
def areAlmostEqual(self, s1, s2):
num=0
a,b=set(),set()
for i in range(len(s1)):
if s1[i]!=s2[i]:
num+=1
a.add(s1[i])
b.add(s2[i])
if num>2:
break
return num!=1 and a==b
code寫得超醜
好像根本不用用set
肥肥就這樣了