楼主:
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
肥肥就这样了