每日一题——一次编辑(双百通过)

简介: 每日一题——一次编辑(双百通过)

面试题 01.05. 一次编辑

题目描述:

思路:

  firstLen := len(first) // 第一个字符串的长度
  secondLen := len(second) // 第二个字符串的长度
  differVal := math.Abs(float64(firstLen - secondLen)) // 二者长度的差值
  longStr := "" // 用于存放长的那个字符串
  shortStr := "" // 用于存放短的那个字符串

整体可以考虑三种情况:

differVal >= 2 这个时候是不可能通过0次或1次编辑达到二者一样的,直接返回false。

differVal == 0 这个时候只需要判断不一样的字符个数,如果大于1,就说明通过0次或1次编辑是不可能达到二者一样的,直接返回false;反之可以,返回true即可。

differVal == 1这个时候不用思考的那么复杂,具体见题解:

题解:

func oneEditAway(first string, second string) bool {
  firstLen := len(first)
  secondLen := len(second)
  differVal := math.Abs(float64(firstLen - secondLen))
  if differVal >= 2 {
    return false
  } else if differVal == 1 {
    longStr := "" // 长字符串
    shortStr := "" // 短字符串
    if firstLen > secondLen {
      longStr = first
      shortStr = second
    } else {
      longStr = second
      shortStr = first
    }
    // 为两个字符串分别定义一个指针:lenStrPoint,shortStrPoint
    lenStrPoint := 0
    shortStrPoint := 0
    // 定义一个计数器
    count:=0
    // 遍历完短字符串为止
    for shortStrPoint < len(shortStr) {
      // 如果二者指针指向的字符不同,长指针++
      if shortStr[shortStrPoint] != longStr[lenStrPoint] {
        lenStrPoint++
        count++
        if count>1 {
           return false
        }
      }else {
        // 否则都++
        shortStrPoint++
        lenStrPoint++
      }
    }
  } else if differVal == 0 {
    count := 0
    for i := 0; i < firstLen; i++ {
      if first[i] != second[i] {
        count++
      }
      if count > 1 {
        return false
      }
    }
  }
  return true
}

提交结果:

相关文章
|
算法 Cloud Native
【刷题日记】513. 找树左下角的值
本次刷题日记的第 74 篇,力扣题为:513. 找树左下角的值 ,中等
|
Linux iOS开发 MacOS
[学习][笔记] qt5 从入门到入坟:<六>对话框
[学习][笔记] qt5 从入门到入坟:<六>对话框
LeetCode每日一题(22)——一次编辑
一次编辑 1.题目 2.示例 3.思路 4.代码
105 0
LeetCode每日一题——面试题 01.05. 一次编辑
字符串有三种编辑操作:插入一个字符、删除一个字符或者替换一个字符。 给定两个字符串,编写一个函数判定它们是否只需要一次(或者零次)编辑。
88 0
学会它再也不怕编辑数学公式
最近在复习高等数学,发现有好多的定理公式需要记住,才能在后续做题中灵活运用,然后就想把这些公式总结到文档中,方便有时间看看加深记忆。首先想到的文档编辑肯定是 Word ,但发现 Word 编辑公式很不方便,然后发现用 Markdown 也可以编辑公式,它可以通过键盘上几个特殊符号和字母数字的组合,就能编辑出想要的公式,所以很方便,现在就带大家一起来学习下。
272 0
学会它再也不怕编辑数学公式
WordPress 5文章编辑真难用 换回老版经典编辑器教程
WordPress 5文章编辑真难用 换回老版经典编辑器教程 WordPress 5 正式采用了全新的“Block Editor”编辑器,从而替换了原有“Classic Editor”编辑器,相信有很多人和子凡一样会不习惯或者不喜欢新编辑器,那么新版 WordPress 该如何换回原来的 WordPress 编辑器呢? 不可否认 WordPress 还是非常人性化的,至少会考虑和兼顾更多的用户,不然子凡也不可能青睐 WordPress,所以及时 WordPress 5更换了全新的编辑器,但是也依旧给大家提供了快速便捷切换到原编辑器的插件:“Classic Editor”。
4774 0
Markdown 公式编辑中的坎坷
\(\boldsymbol{\hat y} = \boldsymbol{W} \boldsymbol{x}\) 的输入 代码: $\boldsymbol{\hat y} = \boldsymbol{W} \boldsymbol{x}$ 探寻有趣之事!
922 0