双胞胎字符串
问题描述
给定两个字符串s和t,每次可以任意交换s的奇数位或者偶数位,即奇数位上的字符能与其他奇数位上的字符进行互换,偶数位上的字符也能与其他偶数位上的字符进行互换,经过若干次变换将字符串s变换为字符串t
代码实现
class Solution:
def isTwin(self, s, t):
if len(s) != len(t):
return "No"
oddS = []
evenS = []
oddT = []
evenT = []
for i in range(len(s)):
if i & 1:
oddS.append(s[i])
oddT.append(t[i])
else:
evenS.append(s[i])
evenT.append(t[i])
oddS.sort()
oddT.sort()
evenS.sort()
evenT.sort()
for i in range(len(oddS)):
if oddS[i] != oddT[i]:
return "No"
for i in range(len(evenS)):
if evenS[i] != evenT[i]:
return "No"
return "Yes"
if __name__ == "__main__":
s = input("请输入字符串s:")
t = input("请输入字符串t:")
solution = Solution()
print('s 和t分别为:', s, t)
print("是否为双胞胎:", solution.isTwin(s, t))
运行结果
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/63e87e28e67745f88743ddf6ac806d4a.png)