golang力扣leetcode 面试题01.05.一次编辑

简介: golang力扣leetcode 面试题01.05.一次编辑

面试题01.05.一次编辑

面试题01.05.一次编辑

题解

题目:给定两个字符串,只能进行一次[增加一个字符,删除一个字符,修改一个字符],问能否在一次编辑,或者,零次编辑后,两个字符串相等

思路:

1.对于零次的情况:两个字符串本来就相等
2.如果两个字符串长度差为2,至少需要两次,直接返回false即可
3.遍历短的字符串,依次判断字符,直到遇到不相等的情况
  如果两个字符串长度相等:修改----》直接判断后半串字符串是否相等
  如果两个字符串不相等:对于短字符串来说是插入,对于长字符串来说是删除
    -----》 判断s1[i:] == s2[i+1:]

代码

func oneEditAway(s1 string, s2 string) bool {
  n, m := len(s1), len(s2) //s1 小 s2 大
  if n > m {
    return oneEditAway(s2, s1)
  }
  if m-n > 1 {
    return false
  }
  if s1 == s2 {
    return true
  }
  for i := 0; i < len(s2); i++ {
    if s2[i] != s1[i] {
      if len(s1) == len(s2) {
        return s1[i+1:] == s2[i+1:]
      }
      return s1[i:] == s2[i+1:]
    }
  }
  return true
}
目录
相关文章
|
开发者 索引 Python
这些年背过的面试题——LeetCode
本文是技术人面试系列LeetCode篇,一文带你详细了解,欢迎收藏!
|
SQL 算法 大数据
深入解析力扣176题:第二高的薪水(子查询与LIMIT详解及模拟面试问答)
深入解析力扣176题:第二高的薪水(子查询与LIMIT详解及模拟面试问答)
|
Python
155. 最小栈 力扣 python 空间换时间 o(1) 腾讯面试题
155. 最小栈 力扣 python 空间换时间 o(1) 腾讯面试题
158 0
|
存储 算法 索引
1124. 表现良好的最长时间段 (python) 前缀和 分类讨论 最大长度 力扣 面试题
1124. 表现良好的最长时间段 (python) 前缀和 分类讨论 最大长度 力扣 面试题
152 0
|
存储 算法
经典的滑动窗口的题目 力扣 2799. 统计完全子数组的数目(面试题)
经典的滑动窗口的题目 力扣 2799. 统计完全子数组的数目(面试题)
141 0
|
SQL 算法 大数据
深入解析力扣181题:超过经理收入的员工(自连接方法详解及模拟面试问答)
深入解析力扣181题:超过经理收入的员工(自连接方法详解及模拟面试问答)
|
存储 算法 搜索推荐
深入解析力扣179题:最大数(自定义排序法详解及模拟面试问答)
深入解析力扣179题:最大数(自定义排序法详解及模拟面试问答)
|
SQL 大数据 数据挖掘
深入解析力扣178题:分数排名(DENSE_RANK详解及模拟面试问答)
深入解析力扣178题:分数排名(DENSE_RANK详解及模拟面试问答)
|
存储 算法 数据挖掘
力扣174题动态规划:地下城游戏(含模拟面试)
力扣174题动态规划:地下城游戏(含模拟面试)
|
11月前
|
存储 算法 Java
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
本文详解自旋锁的概念、优缺点、使用场景及Java实现。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?

推荐镜像

更多