Re: [閒聊] 每日leetcode
題目:
有兩個字串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
肥肥就這樣了
--
https://i.imgur.com/P179G56.jpeg

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.10.17.83 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1738742537.A.0BD.html
推
02/05 16:18,
10月前
, 1F
02/05 16:18, 1F
→
02/05 16:31,
10月前
, 2F
02/05 16:31, 2F
→
02/05 16:31,
10月前
, 3F
02/05 16:31, 3F
討論串 (同標題文章)
完整討論串 (本文為第 1323 之 1552 篇):