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
}
目录
相关文章
|
1月前
|
程序员 C语言
【C语言】LeetCode(力扣)上经典题目
【C语言】LeetCode(力扣)上经典题目
|
1月前
|
索引
力扣(LeetCode)数据结构练习题(3)------链表
力扣(LeetCode)数据结构练习题(3)------链表
78 0
|
1月前
力扣(LeetCode)数据结构练习题(2)
力扣(LeetCode)数据结构练习题(2)
29 0
|
1月前
|
存储
力扣(LeetCode)数据结构练习题
力扣(LeetCode)数据结构练习题
52 0
|
3月前
|
开发者 索引 Python
这些年背过的面试题——LeetCode
本文是技术人面试系列LeetCode篇,一文带你详细了解,欢迎收藏!
|
4月前
|
Python
155. 最小栈 力扣 python 空间换时间 o(1) 腾讯面试题
155. 最小栈 力扣 python 空间换时间 o(1) 腾讯面试题
|
4月前
|
存储 算法 索引
1124. 表现良好的最长时间段 (python) 前缀和 分类讨论 最大长度 力扣 面试题
1124. 表现良好的最长时间段 (python) 前缀和 分类讨论 最大长度 力扣 面试题
|
4月前
|
存储 算法
经典的滑动窗口的题目 力扣 2799. 统计完全子数组的数目(面试题)
经典的滑动窗口的题目 力扣 2799. 统计完全子数组的数目(面试题)
|
2月前
|
Go
Golang语言之管道channel快速入门篇
这篇文章是关于Go语言中管道(channel)的快速入门教程,涵盖了管道的基本使用、有缓冲和无缓冲管道的区别、管道的关闭、遍历、协程和管道的协同工作、单向通道的使用以及select多路复用的详细案例和解释。
111 4
Golang语言之管道channel快速入门篇
|
2月前
|
Go
Golang语言文件操作快速入门篇
这篇文章是关于Go语言文件操作快速入门的教程,涵盖了文件的读取、写入、复制操作以及使用标准库中的ioutil、bufio、os等包进行文件操作的详细案例。
66 4
Golang语言文件操作快速入门篇