假设我们有两个由小写字母组成的字符串A和B;我们必须检查是否可以在A中交换两个字母,以便结果等于B。
因此,如果输入类似于A =“ ba”,B =“ ab”,则输出将为True。
为了解决这个问题,我们将遵循以下步骤-
如果A的大小与B的大小不同,则
返回False
否则,当A和B具有任何不常见的元素时,则
返回False
否则,当A与B相同且A中的所有字符都不同时,则
返回False
除此以外,
计数:0
对于0到A的范围内的i,执行
数:=数+ 1
如果计数等于3,则
返回False
如果A [i]与B [i]不同,则
返回True
让我们看下面的实现以更好地理解-
class Solution:
def buddyStrings(self, A, B):
if len(A)!=len(B):
return False
elif sorted(A)!=sorted(B):
return False
elif A==B and len(set(A))==len(A):
return False
else:
count=0
for i in range(len(A)):
if A[i]!=B[i]:
count+=1
if count==3:
return False
return True
ob = Solution()print(ob.buddyStrings("ba","ab"))"ba","ab"
输出结果
True