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

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

面试题 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
}

提交结果:

相关文章
|
7月前
面试题 01.05:一次编辑
面试题 01.05:一次编辑
32 0
|
7月前
CSDN博客置顶操作
CSDN博客置顶操作
48 0
|
Shell 开发工具
吐血整理--VI编辑器常用操作汇总
吐血整理--VI编辑器常用操作汇总
137 0
线段树笔记草稿
线段树笔记草稿
48 0
LeetCode每日一题(22)——一次编辑
一次编辑 1.题目 2.示例 3.思路 4.代码
LeetCode——面试题 01.05. 一次编辑
LeetCode——面试题 01.05. 一次编辑
60 0
LeetCode每日一题——面试题 01.05. 一次编辑
字符串有三种编辑操作:插入一个字符、删除一个字符或者替换一个字符。 给定两个字符串,编写一个函数判定它们是否只需要一次(或者零次)编辑。
82 0
|
算法 Java
『牛客|每日一题』AB5 点击消除
基础算法无论在研究生面试还是求职面试都是十分重要的一环,这里推荐一款算法面试神器:牛客网-面试神器;算法题只有多刷勤刷才能保持思路与手感,大家赶紧行动起来吧(温馨提示:常见的面试问答题库也很nice哦 https://www.nowcoder.com/link/pc_csdncpt_ll_sf
74 0
『牛客|每日一题』AB5 点击消除
|
canal 数据库 数据安全/隐私保护
项目的第十七天内容介绍 | 学习笔记
快速学习 项目的第十七天内容介绍