给定两个字符串 s 和 t,判断他们的编辑距离是否为 1。

注意:

满足编辑距离等于 1 有三种可能的情形:

往 s 中插入一个字符得到 t
从 s 中删除一个字符得到 t
在 s 中替换一个字符得到 t
示例 1:

输入: s = "ab", t = "acb"
输出: true
解释: 可以将 'c' 插入字符串 s 来得到 t。
示例 2:

输入: s = "cab", t = "ad"
输出: false
解释: 无法通过 1 步操作使 s 变为 t。
示例 3:

输入: s = "1203", t = "1213"
输出: true
解释: 可以将字符串 s 中的 '0' 替换为 '1' 来得到 t。

思路:很简单,你可以三个情形都对应的遍历一遍判断即可。

但是稍微有一点优化,其实如果s能删除一个字符变成t,那么t一定也可以插入一个字符得到s。

所以删除插入没必要都写,我们把短的字符串放在左边(s),就不用写删除了。

class Solution {public boolean isOneEditDistance(String s, String t) {int ns = s.length();int nt = t.length();//交换if (ns > nt)return isOneEditDistance(t, s);//长度差超过1if (nt - ns > 1)return false;//找到不同的字符for (int i = 0; i < ns; i++)if (s.charAt(i) != t.charAt(i))//如长度不同,那么两字符串后面应该相同if (ns == nt)return s.substring(i + 1).equals(t.substring(i + 1));//如长度不同,那么必须在s[i]插入t[i],所以要保证s.substring(i).equals(t.substring(i + 1))elsereturn s.substring(i).equals(t.substring(i + 1));return (ns + 1 == nt);}
}

leetcode161. 相隔为 1 的编辑距离相关推荐

  1. 161. 相隔为 1 的编辑距离

    161. 相隔为 1 的编辑距离 给定两个字符串 s 和 t,判断他们的编辑距离是否为 1. 注意:满足编辑距离等于 1 有三种可能的情形 往 s 中插入一个字符得到 t 从 s 中删除一个字符得到 ...

  2. LeetCode 161. 相隔为 1 的编辑距离(DP/遍历)

    文章目录 1. 题目 2. 解题 2.1 DP超时 2.2 一次遍历 1. 题目 给定两个字符串 s 和 t,判断他们的编辑距离是否为 1. 注意: 满足编辑距离等于 1 有三种可能的情形: 往 s ...

  3. 【大总结3】leetcode解题总览(算法、剑指offer、SQL、多线程、shell)

    3/22更新 剑指offer 题目链接 建议大部分题都会做,都能比较快速且准确的写出来.关于做题方式,我的建议是:一道一道刷即可,因为难度一般,不用系统的学习什么知识,遇到实在不会的就跳过即可. 我这 ...

  4. leetcode解题总览

    3/22更新 剑指offer 题目链接 建议大部分题都会做,都能比较快速且准确的写出来.关于做题方式,我的建议是:一道一道刷即可,因为难度一般,不用系统的学习什么知识,遇到实在不会的就跳过即可. 我这 ...

  5. leetcode刷题目录总结

    题目 题目 技巧 相似的题目 其他 1. 无序数组中找出目标为target的两个数 先定义下一个数,然后找两位的数是否存在 高频, 大厂刷题班, 第27节 2.逆序链表两数相加 链表.各位加法 高频, ...

  6. Leetcode题目分类指南(单独刷题或学习算法书籍配合使用)

    Leetcode题目分类指南 笔者在学习<算法导论>同时,希望能够配合Leetcode的题目进行分类模块化练习,该分类为笔者自己根据做题学习经验,结合<算法导论>的内容,给出L ...

  7. 如何学好C语言--你的学渣朋友告诉你

    光说不练假把式,光练不说傻把式,又练又说真把式. 真实感受,不是我不想学,是我真的不知道我哪里不会啊和得怎么做啊?本文作者当初就是这么废掉的 推荐两个练习的网站 (一)C语言网 https://www ...

  8. LeetCode1-620题汇总,希望对你有点帮助!

    时间很快,公众号发布的LeetCode题目,已经达到620道题了.今天把发布的1-620篇LeetCode文章整理一下,平时文章都放在比较末尾,阅读量都不高,相信很多人都没看过,如果对于算法感兴趣的, ...

  9. LeetCode1-580题汇总,希望对你有点帮助!

    时间很快,公众号发布的LeetCode题目,已经达到560道题了.今天把发布的1-560篇LeetCode文章整理一下,平时文章都放在比较末尾,阅读量都不高,相信很多人都没看过,如果对于算法感兴趣的, ...

最新文章

  1. python基础 list和tuple
  2. .NET6之MiniAPI(十四):跨域CORS(上)
  3. 滚动加载数据 php,无刷新动态加载数据 滚动条加载适合评论等页面
  4. PAT乙级(1018 锤子剪刀布)
  5. 【es】 check-rollover-ready read index [alinas-lcc] is not the wtiter index for alians [index-xx]
  6. Python——匿名函数lambda
  7. perl - Java调用perl
  8. 对佛教大小无别的弦论解释
  9. sql between的用法的意思_SQL 语法手册来啦,你想要的这里都有!
  10. 又是被打败的一天 (记招商银行笔试)
  11. macbook pro 2017版电池问题,八九十的电,用着忽然关机,再开机提示充电才行。
  12. 玄武科技——前端面试题总结
  13. [碎碎念]祝我的董小姐生日快乐~
  14. 【C语言--斐波拉契数列】
  15. 双硬盘多系统独立引导(2-Windows xp Win7)
  16. HDU - 1465 不容易系列之一 【错排】
  17. 在Webots中导入自己的3D模型
  18. android:launchMode的四种方式
  19. android jks sha1,获取Android SHA1 、生成jks密钥、签名Apk
  20. 海贼王游戏--EM游戏02--未雨绸缪

热门文章

  1. rs485接口上下拉_RS485接口EMC电路设计方案
  2. 树莓派 蓝牙音响_你应该拥有一个树莓派
  3. c位边上还有什么位_【一点资讯】那些有趣而搞笑的GIF动画:为让出c位,站边上拍照还是谦虚礼貌的 www.yidianzixun.com...
  4. Java代码服务器上下载图片_Java如何从服务器中下载图片
  5. 【转】CT解析重建**
  6. 【转】深度理解C# 的执行原理
  7. 【转】VTK + QT + VS 编译安装配置
  8. [你必须知道的.NET]第十回:品味类型---值类型与引用类型(下)-应用征途
  9. TUN/TAP设备浅析(一) -- 原理浅析
  10. Callable接口-创建线程的第三种方法