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 a0==b0+m and a1==b1+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 a0==b0+m and a1==b1+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")

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

++运行效果展示:++

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

相关推荐
花酒锄作田5 小时前
Pydantic校验配置文件
python
hboot5 小时前
AI工程师第四课 - 深度学习入门
pytorch·python·神经网络
罗西的思考8 小时前
机器人 / 强化学习】HIL-SERL:人类在环驱动的具身智能进化框架
人工智能·算法·机器学习
CSharp精选营11 小时前
关系型 vs 非关系型:从原理到选型,一文搞定数据库核心分类
数据结构·nosql·关系型数据库·非关系型数据库·技术选型
美团技术团队12 小时前
LongCat 开源 VitaBench 2.0:长期动态智能体基准新标杆
人工智能·算法
ZhengEnCi16 小时前
P2M-Matplotlib折线图完全指南-从数据可视化到趋势分析的Python绘图利器
python·matlab·数据可视化
ZhengEnCi18 小时前
P2L-Matplotlib饼图完全指南-从数据可视化到图表定制的Python绘图利器
python·matlab
曲幽18 小时前
你的REST接口还在“过度投喂”数据吗?——FastAPI + GraphQL实战避坑指南
python·fastapi·web·graphql·route·cors·rest·strawberry
用户83580861879119 小时前
基于 Self-RAG 与列表级重排序的进阶 RAG 系统设计与实现
python
To_OC1 天前
LC 207 课程表:刚学图论那会儿,我连这是拓扑排序都没看出来
javascript·算法·leetcode