LeetCode简单题之仅执行一次字符串交换能否使两个字符串相等
题目
给你长度相等的两个字符串 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简单题之仅执行一次字符串交换能否使两个字符串相等相关推荐
- LeetCode 1790. 仅执行一次字符串交换能否使两个字符串相等
文章目录 1. 题目 2. 解题 1. 题目 给你长度相等的两个字符串 s1 和 s2 . 一次 字符串交换 操作的步骤如下:选出某个字符串中的两个下标(不必不同),并交换这两个下标所对应的字符. 如 ...
- LeetCode简单题之设计 Goal 解析器
题目 请你设计一个可以解释字符串 command 的 Goal 解析器 .command 由 "G"."()" 和/或 "(al)" 按某种 ...
- LeetCode简单题之检查两个字符串数组是否相等
题目 给你两个字符串数组 word1 和 word2 .如果两个数组表示的字符串相同,返回 true :否则,返回 false . 数组表示的字符串 是由数组中的所有元素 按顺序 连接形成的字符串. ...
- LeetCode简单题之统计匹配检索规则的物品数量
题目 给你一个数组 items ,其中 items[i] = [typei, colori, namei] ,描述第 i 件物品的类型.颜色以及名称. 另给你一条由两个字符串 ruleKey 和 ru ...
- LeetCode简单题之旋转字符串
题目 给定两个字符串, A 和 B. A 的旋转操作就是将 A 最左边的字符移动到最右边. 例如, 若 A = 'abcde',在移动一次之后结果就是'bcdea' .如果在若干次旋转操作之后,A 能 ...
- LeetCode简单题之有效的字母异位词
题目 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词. 注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词. 示例 1: 输入: s = ...
- LeetCode简单题之数组中的字符串匹配
题目 给你一个字符串数组 words ,数组中的每个字符串都可以看作是一个单词.请你按 任意 顺序返回 words 中是其他单词的子字符串的所有单词. 如果你可以删除 words[j] 最左侧和/或最 ...
- LeetCode简单题之最长特殊序列 Ⅰ
题目 给你两个字符串 a 和 b,请返回 这两个字符串中 最长的特殊序列 .如果不存在,则返回 -1 . 「最长特殊序列」 定义如下:该序列为 某字符串独有的最长子序列(即不能是其他字符串的子序列) ...
- LeetCode简单题之实现 strStr()
题目 实现 strStr() 函数. 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始).如果不存在 ...
最新文章
- Java反射机制分析指南
- 【swjtu】数字电路实验3_1位十进制计数器
- Ymal格式转Properties格式
- php军事网站源码,军事网站的设计与实现(PHP+MYSQL)(含录像)
- lightoj 1300 边双联通分量+交叉染色求奇圈
- html画布 缩放的正方形,html5-canvas – 在动画HTML5画布中缩放和平移
- 微信小程序 encryptedData 的解密(JAVA)
- Linux定时任务系统 Cron
- 阶段5 3.微服务项目【学成在线】_day04 页面静态化_03-freemarker测试环境搭建
- java中使用阻塞队列实现生产这与消费这之间的关系
- 创作短视频怎么去除素材水印?
- oracle rac 停机,RAC停机重启方案
- 马斯克、李彦宏、姚期智等云端纵论AI,他们都说了什么?
- C++11Lambda表达式捕获变量(Capturing the Variable)与本地变量(Local Variable)
- 论文图片绘制 Python绘制多分类混淆矩阵及可视化(颜色随正确率渐变)
- Linux 用户管理 4 之密码管理
- 菜鸟系列之一:在ubuntu linux下搭建android开发
- 多场景项目实战 (总结有点多今天)
- QT5百度地图开发学习——地图显示
- Anti_TexturePacker工具
热门文章
- 利用dom4j将实体类转换为对应的xml报文
- 大数据中用到的新的数据类型bigint、decimal、smallint、tinyint
- swig error : Unrecognized option -doxygen Ubuntu 安装 swig-3.0.12
- 2022-2028年中国PVC糊树脂行业市场深度分析及市场规模预测报告
- 各bert 模型下载
- PyTorch的十七个损失函数
- Jedis无法远程连接阿里云服务器的redis问题
- 通过Mellanox ConnectX NIC使用XDP加速
- Android 属性动画(Property Animation) ValueAnimator 的介绍
- NetworkInfo 方法过时的处理方法