
仅执行一次字符串交换能否使两个字符串相等
发布日期:2021-05-08 00:00:37
浏览次数:17
分类:精选文章
本文共 931 字,大约阅读时间需要 3 分钟。
原题指路
题目描述
给你长度相等的两个字符串 s1
和 s2
。一次 字符串交换 操作的步骤如下:选出某个字符串中的两个下标(不必不同),并交换这两个下标所对应的字符。
如果对 其中一个字符串 执行 最多一次字符串交换 就可以使两个字符串相等,返回 true
;否则,返回 false
。
解题思路
s1
和s2
完全相同;s1
和s2
只有两个对应位置的元素不同。
所以循环遍历一次字符串进行判断即可。
时间复杂度: O ( n ) O(n) O(n)
空间复杂度: O ( 1 ) O(1) O(1)代码
class Solution { public: bool areAlmostEqual(string s1, string s2) { int cnt = 0, index[3]; int len = s1.length(); for(int i = 0; i < len; i++)//循环找出字符串中不同的元素并记录下标 { if(s1[i] != s2[i]) { index[cnt] = i; cnt++; } if(cnt > 2)//计数超过2就跳出 break; } //分情况讨论 if(!cnt) return true; if(cnt==2 && s1[index[0]] == s2[index[1]] && s1[index[1]] == s2[index[0]]) return true; return false; }};
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2025年03月22日 18时47分01秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Nmap扫描工具介绍
2021-05-09
算法笔记:递归、动态规划
2021-05-09
Pytest插件开发
2021-05-09
常用Windows 快捷键
2021-05-09
linux命令-压缩与打包
2021-05-09
ORACLE 11g 生产中高水位线(HWM)处理
2021-05-09
centos 6.x 编译安装 pgsql 9.6
2021-05-09
weblogic 服务器部署SSL证书
2021-05-09
oracle 11g not in 与not exists 那个高效?
2021-05-09
Linux 安装Redis 5.0(以及参数调优)
2021-05-09
html5 Game开发系列文章之 零[开篇]
2021-05-09
为什么阿里巴巴建议集合初始化时,指定集合容量大小
2021-05-09
为什么阿里巴巴要求谨慎使用ArrayList中的subList方法
2021-05-09
Redis不是一直号称单线程效率也很高吗,为什么又采用多线程了?
2021-05-09
基于Python的Appium环境搭建合集
2021-05-09
Requests实践详解
2021-05-09
接口测试简介
2021-05-09
Golang Web入门(4):如何设计API
2021-05-09