题目地址:One Edit Distance - LeetCode


此题链接:One Edit Distance - LeetCode
这道题目进阶版本Edit Distance - LeetCode
文章地址:LeetCode 72. Edit Distance - zhangpeterx的博客 - CSDN博客


Given two strings s and t, determine if they are both one edit distance apart.

Note:

There are 3 possiblities to satisify one edit distance apart:

  • Insert a character into s to get t
  • Delete a character from s to get t
  • Replace a character of s to get t
    Example 1:
Input: s = "ab", t = "acb"
Output: true
Explanation: We can insert 'c' into s to get t.

Example 2:

Input: s = "cab", t = "ad"
Output: false
Explanation: We cannot get t from s by only one step.

Example 3:

Input: s = "1203", t = "1213"
Output: true
Explanation: We can replace '0' with '1' to get t.

如果s与t是One Edit Distance,那么s与t要么长度相等,做一次替换,要么长度差一,做删除或者插入。
Python解法如下:

class Solution:def isOneEditDistance(self, s: str, t: str) -> bool:lenS=len(s)lenT=len(t)if lenS>lenT:s,t=t,slenS,lenT=lenT,lenSif lenS==lenT:count=0for i in range(0,lenS):if s[i]!=t[i]:count+=1if count>=2:breakif count==1:return Trueelse:return Falseelif lenT-lenS>=2:return Falseelse:flag=0for i in range(0,lenT):if i==lenT-1 and flag==0:return Trueelif s[i-flag]!=t[i]:if flag==0:flag=1else:return Falsereturn True

Java解法如下:

class Solution {public boolean isOneEditDistance(String s, String t) {int ns = s.length();int nt = t.length();// Ensure that s is shorter than t.if (ns > nt)return isOneEditDistance(t, s);// The strings are NOT one edit away distance  // if the length diff is more than 1.if (nt - ns > 1)return false;for (int i = 0; i < ns; i++)if (s.charAt(i) != t.charAt(i))// if strings have the same lengthif (ns == nt)return s.substring(i + 1).equals(t.substring(i + 1));// if strings have different lengthselsereturn s.substring(i).equals(t.substring(i + 1));// If there is no diffs on ns distance// the strings are one edit away only if// t has one more character. return (ns + 1 == nt);}
}

C++解法如下:

class Solution {public:bool isOneEditDistance(string s, string t) {int m = s.size(), n = t.size();if (m > n) {return isOneEditDistance(t, s);}for (int i = 0; i < m; i++) {if (s[i] != t[i]) {if (m == n) {return s.substr(i + 1) == t.substr(i + 1);}return s.substr(i) == t.substr(i + 1);}}return m + 1 == n;}
};

LeetCode 161. One Edit Distance--Python,Java,C++解法相关推荐

  1. leetcode[161] One Edit Distance

    判断两个字符串的编辑距离是不是1. 两个字符串距离是1的可能性: 1)两个字符串长度相等:s="abc",t="aec"; 2)两个字符串长度相差1(两种情况) ...

  2. Edit Distance Python源码及支持包的实现

    Edit Distance Python源码及支持包的实现 编辑距离 编辑距离 又称Levenshtein距离(莱文斯坦距离也叫做Edit Distance)指两个字串之间,由一个转成另一个所需的最少 ...

  3. LeetCode 51. N-Queens--回溯法 pyhon,java,c++解法

    题目地址: The n-queens puzzle is the problem of placing n queens on an n×n chessboard such that no two q ...

  4. LeetCode 74. Search a 2D Matrix--有序矩阵查找--python,java,c++解法

    题目地址:Search a 2D Matrix - LeetCode Write an efficient algorithm that searches for a value in an m x ...

  5. 【LeetCode】461. Hamming Distance (java实现)

    2019独角兽企业重金招聘Python工程师标准>>> 原题链接 https://leetcode.com/problems/hamming-distance/ 原题 The Ham ...

  6. Python JAVA Solutions for Leetcode

    Python & JAVA Solutions for Leetcode (inspired by haoel's leetcode) Remember solutions are only ...

  7. leetcode Edit Distance

    作者:jostree 转载请注明出处 http://www.cnblogs.com/jostree/p/4051082.html 题目链接:leetcode Edit Distance 最短编辑距离, ...

  8. LeetCode 319. Bulb Switcher--C++,java,python 1行解法--数学题

    LeetCode 319. Bulb Switcher–C++,java,python 1行解法 LeetCode题解专栏:LeetCode题解 LeetCode 所有题目总结:LeetCode 所有 ...

  9. LeetCode 105 Construct Binary Tree from Preorder and Inorder Traversal-前序中序遍历构造二叉树-Python和Java递归解法

    题目地址:Construct Binary Tree from Preorder and Inorder Traversal - LeetCode Given preorder and inorder ...

最新文章

  1. 测试电阻电容 二三极管的好帮手 晶体管测试显示模块
  2. XILINX资源获取
  3. No module named 'torch._C'
  4. uva 10453 - Make Palindrome(dp)
  5. 《JAVA与模式》之工厂方法模式
  6. 6.MySQL数据库与数据表操作
  7. 远程连接管理软件 v1.0
  8. logger.debug的用处
  9. 群同态基本定理证明_群同态基本定理II
  10. 当Java枚举遇到位掩码,还能这么玩?
  11. JMP比较组均值,检查差异
  12. 代码管理学:命名要准确
  13. Student数据库创建
  14. 驱动备份及还原命令-手记
  15. Android下调用收发短信邮件等
  16. java剑姬_Java虚拟机非常有用的性能监控工具
  17. 如何是matlab中的折线图变得更加的光滑?
  18. MOS管GS两端并联阻容的作用分析
  19. 【中科院】分子生物学-朱玉贤第四版-笔记-病毒的分子生物学
  20. java 异常管理员_Java异常处理机制

热门文章

  1. php heredoc 开启,PHP中nowdoc和heredoc使用需要注意的一点
  2. iphone11边框喇手问题_苹果全系 iPhone 11 频频翻车,问题频频呈现,你的新机占几点...
  3. 面向生信分析的高性 RStudio 服务器
  4. 误入人体的海洋细菌,能轻易吞噬你的肢体乃至生命
  5. R语言:聚类分析hclust
  6. java中利用反射创建对象,利用java反射机制动态创建对象
  7. pandas使用select_dtypes函数移除dataframe中指定数据类型的数据列(exclude columns based on the data type in dataframe)
  8. R语言ggplot2可视化增加轴标签(ticks)和轴标题(title)之间的距离实战
  9. 分类模型的ROC曲线、AUC值、GINI系数、Lift、Gain、KS指标分别是什么?计算公式是什么?有什么意义?
  10. 机器学习数据预处理之离群值/异常值:MAD法(绝对值差中位数法)+绝对中位差(Median Absolute Deviation,MAD)