示例 1:
输入:s1 = “bank”, s2 = “kanb” 输出:true 解释:例如,交换 s2 中的第一个和最后一个字符可以得到 “bank”
示例 2:
输入:s1 = “attack”, s2 = “defend” 输出:false 解释:一次字符串交换无法使两个字符串相等
示例 3:
输入:s1 = “kelb”, s2 = “kelb” 输出:true 解释:两个字符串已经相等,所以不需要进行字符串交换
示例 4:
输入:s1 = “abcd”, s2 = “dcba” 输出:false
提示:
1 <= s1.length, s2.length <= 100 s1.length == s2.length s1 和 s2 仅由小写英文字母组成
程序代码
class Solution:
def areAlmostEqual(self, s1: str, s2: str) -> bool:
if s1 == s2:
return True
ans1 = 0
ans2 = []
ans3 = []
for i in range(len(s1)):
if s1[i] != s2[i]:
ans1 += 1
ans2.append(s1[i])
ans3.append(s2[i])
if ans1 == 3:
return False
if ans1 == 2:
if ans2[0] in ans3 and ans2[1] in ans3:
return True
return False
|