样例输入
abcdef
fbcdea
样例输出
true
def compareEqual(str1,str2) -> bool:
if(len(str1) != len(str2)):
return False
#建立temp,如果str1和str2对应i下标元素不相等,则将下标添加到temp中
temp = []
for i in range(len(str1)):
if str1[i]!= str2[i]:
temp.append(i)
# 两个字符串一模一样,没有要交换的
if len(temp) == 0:
return True
# temp长度%2不为0或者大于2,or关系;或者直接用!=2
# if len(temp)%2 != 0 or len(temp)>2:
# return False
if len(temp) != 2:
return False
# 判断temp的唯一的两个下标交换后是否一样
if str1[temp[0]] == str2[temp[1]] and str1[temp[1]] == str2[temp[0]]:
return True
else:
return False
#输入字符串,调用函数
s1=input("s1:")
s2=input("s2:")
print(compareEqual(s1,s2))
结果:
参考博客: