今日题目
https://leetcode.com/problems/check-if-one-string-swap-can-make-strings-equal/description
思路
按题意模拟即可。
解题方法
按题意模拟即可。
- 检查两个字符串中不同位置的数量是否为 0 或恰好为 2。
- 检查交换这两个位置的字符后是否能使字符串相等。
复杂度
-
时间复杂度:$O(N)$,N 为字符串的长度。
-
空间复杂度:$O(1)$。
代码
class Solution:
def areAlmostEqual(self, s1: str, s2: str) -> bool:
fst = -1
sec = -1
for i in range(len(s1)):
if s1[i] != s2[i]:
if fst == -1:
fst = i
elif sec == -1:
sec = i
else:
return False
if fst == -1 and sec == -1:
return True
if fst == -1 or sec == -1:
return False
if s1[fst] == s2[sec] and s1[sec] == s2[fst]:
return True
return False
