题目

给你长度相等的两个字符串 s1 和 s2 。一次 字符串交换 操作的步骤如下:选出某个字符串中的两个下标(不必不同),并交换这两个下标所对应的字符。
如果对 其中一个字符串 执行 最多一次字符串交换 就可以使两个字符串相等,返回 true ;否则,返回 false 。
示例 1:
输入:s1 = “bank”, s2 = “kanb”
输出:true
解释:例如,交换 s2 中的第一个和最后一个字符可以得到 “bank”
示例 2:
输入:s1 = “attack”, s2 = “defend”
输出:false
解释:一次字符串交换无法使两个字符串相等
示例 3:
输入:s1 = “kelb”, s2 = “kelb”
输出:true
解释:两个字符串已经相等,所以不需要进行字符串交换
示例 4:
输入:s1 = “abcd”, s2 = “dcba”
输出:false
提示:
1 <= s1.length, s2.length <= 100
s1.length == s2.length
s1 和 s2 仅由小写英文字母组成
来源:力扣(LeetCode)

解题思路

  同时遍历两个字符串,标记不一样的字符下标,如果不一样的字符对超过了两对那么题目一定不成立,如果不一样的字符对只有一对也不会成立,如果没有不一样的字符,题目成立。如果恰恰只有两对不一样的字符对,那么判断交换后是否一样即可。

class Solution:def areAlmostEqual(self, s1: str, s2: str) -> bool:temp=[]for i in range(len(s1)):if s1[i]!=s2[i]:temp.append(i)if len(temp)==0: #如果没有不一样的字符return Trueelif len(temp)%2 or len(temp)>2: #如果仅有一对不同字符对或者超过两对return Falsereturn True if s1[temp[0]]==s2[temp[1]] and   s1[temp[1]]==s2[temp[0]] else False  #判断交换后是否一样

LeetCode简单题之仅执行一次字符串交换能否使两个字符串相等相关推荐

  1. LeetCode 1790. 仅执行一次字符串交换能否使两个字符串相等

    文章目录 1. 题目 2. 解题 1. 题目 给你长度相等的两个字符串 s1 和 s2 . 一次 字符串交换 操作的步骤如下:选出某个字符串中的两个下标(不必不同),并交换这两个下标所对应的字符. 如 ...

  2. LeetCode简单题之设计 Goal 解析器

    题目 请你设计一个可以解释字符串 command 的 Goal 解析器 .command 由 "G"."()" 和/或 "(al)" 按某种 ...

  3. LeetCode简单题之检查两个字符串数组是否相等

    题目 给你两个字符串数组 word1 和 word2 .如果两个数组表示的字符串相同,返回 true :否则,返回 false . 数组表示的字符串 是由数组中的所有元素 按顺序 连接形成的字符串. ...

  4. LeetCode简单题之统计匹配检索规则的物品数量

    题目 给你一个数组 items ,其中 items[i] = [typei, colori, namei] ,描述第 i 件物品的类型.颜色以及名称. 另给你一条由两个字符串 ruleKey 和 ru ...

  5. LeetCode简单题之旋转字符串

    题目 给定两个字符串, A 和 B. A 的旋转操作就是将 A 最左边的字符移动到最右边. 例如, 若 A = 'abcde',在移动一次之后结果就是'bcdea' .如果在若干次旋转操作之后,A 能 ...

  6. LeetCode简单题之有效的字母异位词

    题目 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词. 注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词. 示例 1: 输入: s = ...

  7. LeetCode简单题之数组中的字符串匹配

    题目 给你一个字符串数组 words ,数组中的每个字符串都可以看作是一个单词.请你按 任意 顺序返回 words 中是其他单词的子字符串的所有单词. 如果你可以删除 words[j] 最左侧和/或最 ...

  8. LeetCode简单题之最长特殊序列 Ⅰ

    题目 给你两个字符串 a 和 b,请返回 这两个字符串中 最长的特殊序列 .如果不存在,则返回 -1 . 「最长特殊序列」 定义如下:该序列为 某字符串独有的最长子序列(即不能是其他字符串的子序列) ...

  9. LeetCode简单题之实现 strStr()

    题目 实现 strStr() 函数. 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始).如果不存在 ...

最新文章

  1. Java反射机制分析指南
  2. 【swjtu】数字电路实验3_1位十进制计数器
  3. Ymal格式转Properties格式
  4. php军事网站源码,军事网站的设计与实现(PHP+MYSQL)(含录像)
  5. lightoj 1300 边双联通分量+交叉染色求奇圈
  6. html画布 缩放的正方形,html5-canvas – 在动画HTML5画布中缩放和平移
  7. 微信小程序 encryptedData 的解密(JAVA)
  8. Linux定时任务系统 Cron
  9. 阶段5 3.微服务项目【学成在线】_day04 页面静态化_03-freemarker测试环境搭建
  10. java中使用阻塞队列实现生产这与消费这之间的关系
  11. 创作短视频怎么去除素材水印?
  12. oracle rac 停机,RAC停机重启方案
  13. 马斯克、李彦宏、姚期智等云端纵论AI,他们都说了什么?
  14. C++11Lambda表达式捕获变量(Capturing the Variable)与本地变量(Local Variable)
  15. 论文图片绘制 Python绘制多分类混淆矩阵及可视化(颜色随正确率渐变)
  16. Linux 用户管理 4 之密码管理
  17. 菜鸟系列之一:在ubuntu linux下搭建android开发
  18. 多场景项目实战 (总结有点多今天)
  19. QT5百度地图开发学习——地图显示
  20. Anti_TexturePacker工具

热门文章

  1. 利用dom4j将实体类转换为对应的xml报文
  2. 大数据中用到的新的数据类型bigint、decimal、smallint、tinyint
  3. swig error : Unrecognized option -doxygen Ubuntu 安装 swig-3.0.12
  4. 2022-2028年中国PVC糊树脂行业市场深度分析及市场规模预测报告
  5. 各bert 模型下载
  6. PyTorch的十七个损失函数
  7. Jedis无法远程连接阿里云服务器的redis问题
  8. 通过Mellanox ConnectX NIC使用XDP加速
  9. Android 属性动画(Property Animation) ValueAnimator 的介绍
  10. NetworkInfo 方法过时的处理方法