python-双胞胎字符串

[问题描述] :给定两个字符串s和t,每次可以任意交换s的奇数位和偶数位的字符,即奇数位的字符可以与任意其它奇数位的字符交换,偶数位的字符同样也可以与任意偶数位的字符的字符交换,问能否在有限的次数的交换下使s变为t?
[问题示例]:输入s="abcd",t="cdab",输出"Yes",第一次a与c交换,第二次b与d交换;s输入s="abcd",t="bcda",输出"No",无论如何交换,始终无法将s="abcd"变为s=t="bcda"。

++完整代码如下:++

a=input()

b=input()

c=[]

if len(a)!=len(b):

print("No")

else:

for m in range(0,len(a),2):

for n in range(0,len(b),2):

if a[0]==b[0+m] and a[1]==b[1+n]:

c.append(1)

else:

c.append(0)

if 1 in c:

print("Yes")

else:

print("No")

++代码解释:++

"a=input()

b=input() ",让用户输入两个字符串。

"if len(a)!=len(b):

print("No") ",判断用户输入的两个字符串长度是否相同(字符数是否相同),如果不相同,则输出"No"。

"else:

for m in range(0,len(a),2):

for n in range(0,len(b),2):

if a[0]==b[0+m] and a[1]==b[1+n]:

c.append(1)

else:

c.append(0) ",如果相同,则循环得到s所有按规则调换得到的结果,并分别判断其是否与t相同,如果相同,则在列表c中添加一个1,如果不相同则在列表c中添加一个0。

"if 1 in c:

print("Yes")

else:

print("No") ",循环结束后,判断列表c中是否有1(1等效于s经调换得到t的结果),如果有,则打印"Yes",否则打印"No"。

(注释:++s,t的字符串长度必须为偶数++ ,
if 1 in c:
print("Yes")
else:
print("No")

这个方法非常重要,即循环过程中我虽然不知道我所需要的结果会出现在哪一次循环中,但只要我将所有存入列表中,一但我在列表中查询到我所需要的结果,即可判定存在这种结果,该方法适用于在未知数量的结果中查询是否存在所求结果。)

++运行效果展示:++

++(声明:以上内容均为原创)++

相关推荐
一个不知名程序员www4 分钟前
算法学习入门---前缀和(C++)
c++·算法
jackzhuoa17 分钟前
Rust API 设计的零成本抽象原则:从语言基石到工程实践
算法·rust
Doc.S20 分钟前
【保姆级教程】在AutoDL容器中部署EGO-Planner,实现无人机动态避障规划
人工智能·python·信息可视化·机器人
yuuki23323325 分钟前
【数据结构】双向链表的实现
c语言·数据结构·后端
Predestination王瀞潞33 分钟前
Python3:Eighth 函数
开发语言·python
蒋星熠43 分钟前
多模态技术深度探索:融合视觉与语言的AI新范式
人工智能·python·深度学习·机器学习·分类·数据挖掘·多分类
我不是彭于晏丶1 小时前
238. 除自身以外数组的乘积
数据结构·算法
兮山与1 小时前
算法25.0
算法
xier_ran1 小时前
Python从入门到精通:(2)Python 核心进阶教程从数据结构到面向对象
linux·windows·python·microsoft
爱编程的鱼1 小时前
想学编程作为今后的工作技能,学哪种语言适用性更强?
开发语言·算法·c#·bug