尊享面试 100 题是Leetcode会员专享题单
161. 相隔为 1 的编辑距离
力扣题目链接
给定两个字符串 s 和 t ,如果它们的编辑距离为 1 ,则返回 true ,否则返回 false 。
字符串 s 和字符串 t 之间满足编辑距离等于 1 有三种可能的情形:
- 往 s 中插入 恰好一个 字符得到 t
- 从 s 中删除 恰好一个 字符得到 t
- 在 s 中用 一个不同的字符 替换 恰好一个 字符得到 t
示例 1:
1 2 3
| 输入: s = "ab", t = "acb" 输出: true 解释: 可以将 'c' 插入字符串 s 来得到 t。
|
示例 2:
1 2 3
| 输入: s = "cab", t = "ad" 输出: false 解释: 无法通过 1 步操作使 s 变为 t。
|
提示:
- 0 <= s.length, t.length <= 104
- s 和 t 由小写字母,大写字母和数字组成
思路
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
var isOneEditDistance = function(s, t) { let slen = s.length let tlen = t.length if(Math.abs(slen - tlen) > 1) return false for(let i =0; i< Math.min(slen,tlen);i++){ if(s[i] !== t[i]){ if(slen < tlen){ return s.substring(i) === t.substring(i+1) }else if(slen === tlen){ return s.substring(i+1) === t.substring(i+1) }else{ return s.substring(i+1) === t.substring(i) } } } return slen !== tlen };
|