当前位置: 首页 > news >正文

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")

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


运行效果展示:

54580adfcbba48748ee9025e3c036682.jpg

006ae34d5bcf46a18f04af291a894a61.jpg 

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

http://www.lryc.cn/news/359659.html

相关文章:

  • 万字长文,小白新手怎么开始做YOLO实验,从零开始教!整体思路在这里,科研指南针!
  • MDR-1A用什么前端:深度解析与实用指南
  • 01Linux以及操作系统概述
  • 华为OD刷题C卷 - 每日刷题 1
  • 基于ELK的日志管理【开发实践】
  • 音视频开发—音频相关概念:数模转换、PCM数据与WAV文件详解
  • Elasticsearch 8.1官网文档梳理 - 十三、Search your data(数据搜索)
  • 笔墨挥毫如游龙 最是经典铁线篆——记著名书法家王子彬
  • 智慧校园有哪些特征
  • day25回溯算法part02| 216.组合总和III 17.电话号码的字母组合
  • AWS联网和内容分发服务
  • vscode设置编辑器文件自动保存
  • SJ705C安全帽高温预处理箱
  • AI盒子在智慧加油站的应用
  • IC开发——VCS基本用法
  • MongoDB~存储引擎了解
  • JavaScript实现粒子数字倒计时效果附完整注释
  • Dubbo SPI(Service Provider Interface)机制深度解析
  • 常用中间件各版本下载
  • VsCode SSH远程设置不用重复输入密码
  • 【Linux】:进程切换
  • MongoDB CRUD操作:删除文档
  • SpringBoot集成腾讯COS流程
  • 中高级前端开发岗
  • idea常用配置
  • Spring AOP 切面按照一定规则切片并行查询Mapper并返回
  • 【vue3|第4期】Vue3的选项式与组合式
  • 算法训练营第四十五天 | LeetCode 1049 最后一块石头的重量II、LeetCode 494 目标和、LeetCode 474 一和零
  • 【数据结构与算法(C 语言)】栈的基本操作函数(动图演示) 及 栈的实际应用之一:进制转换
  • [原创]C++ 11的thread_local线程局部变量与Lambda表达式配合使用, 却引发致命的, 难以发现的冲突.