LeetCode中等题之面试题 01.05. 一次编辑

news/2024/11/25 1:00:22/

CSDN话题挑战赛第1期
活动详情地址:https://marketing.csdn.net/p/bb5081d88a77db8d6ef45bb7b6ef3d7f
参赛话题:Leetcode刷题指南
话题描述:代码能力是一个程序员的基本能力,而除了做项目之外,大家接触到的最常规的提升代码能力的方法基本就是刷题了,因此,加油刷题,冲刺大厂!
创作模板:Leetcode刷题指南


文章目录

  • 💎一、面试题 01.05. 一次编辑
    • 🏆1.题目描述
    • 🏆2.原题链接
  • 💎二、解题报告
    • 🏆1.思路分析
    • 🏆2.代码详解
    • 🏆3.按步骤分析


💎一、面试题 01.05. 一次编辑

🏆1.题目描述

字符串有三种编辑操作:插入一个字符、删除一个字符或者替换一个字符。 给定两个字符串,编写一个函数判定它们是否只需要一次(或者零次)编辑。

示例 1:

输入:
first = “pale”
second = “ple”
输出: True

示例 2:

输入:
first = “pales”
second = “pal”
输出: False

🏆2.原题链接

来源:力扣(LeetCode)

💎二、解题报告

🏆1.思路分析

🔑思路:

​   这个题首先要做的是检查长度情况,如果一个字符串比另一个字符串长或短,其长或短的距离超过1,则立即判断为不成立;其次才是遍历两个字符串,分情况处理字符串。
  情况一:字符串长度不等:按照最长或者最短的字符串长度遍历两个字符串,如果遇到不一样的字符,则给较短的字符串在相应的位置添加对应的字符,尽量使得两个字符串一样。如果遍历到最短字符串的末尾没有发现不一样的字符,则此时只需要在短的字符串末尾加一个字符即可使得条件成立,如果在遍历的过程中需要第二次修改短的字符串,则题目不成立。
  情况二:字符串长度相等:这个情况比较简单,只需要同步遍历两个字符串,一旦发现2处不一样就可立即返回结果,否则遍历至结尾返回结果。

🏆2.代码详解

class Solution:def oneEditAway(self, first: str, second: str) -> bool:a=len(first)b=len(second)if a-b>1:return Falseif b-a>1:return Falseflag=1i=0if a>b:while i<a:try:if first[i]!=second[i]:if flag:second=second[0:i]+first[i]+second[i:]flag=0else:return Falsei+=1except:return Truereturn Trueelif a<b:while i<b:try:if second[i]!=first[i]:if flag:first=first[0:i]+second[i]+first[i:]flag=0else:return Falsei+=1except:return Truereturn Trueelse:for i,j in zip(first,second):if i!=j:if flag:flag=0else:return Falsereturn True

🏆3.按步骤分析

  if将整个情况具体分为三种,a>b,a<b,a=b,其中a>b和a<b其实是一种情况,它们是两个镜像的操作,在这里我选择以最长的字符串长度进行遍历,这样一旦遍历到最短的字符串尾巴,就可以立即知道结果了。
  代码利用flag标志位来记录操作次数,如果操作次数大于1则题目条件不成立,反之则成立。


CSDN话题挑战赛第1期
活动详情地址
:https://marketing.csdn.net/p/bb5081d88a77db8d6ef45bb7b6ef3d7f


http://www.ppmy.cn/news/605344.html

相关文章

LeetCode简单题之非递增顺序的最小子序列

题目 给你一个数组 nums&#xff0c;请你从中抽取一个子序列&#xff0c;满足该子序列的元素之和 严格 大于未包含在该子序列中的各元素之和。 如果存在多个解决方案&#xff0c;只需返回 长度最小 的子序列。如果仍然有多个解决方案&#xff0c;则返回 元素之和最大 的子序列…

TensorFlow基础笔记(11) max_pool2D函数 深度学习

# def max_pool2d(inputs, # kernel_size, # stride2, # paddingVALID, # data_formatDATA_FORMAT_NHWC, # outputs_collectionsNone, # scopeNone):#"VALID"模式下 #输…

LeetCode简单题之转化时间需要的最少操作数

题目 给你两个字符串 current 和 correct &#xff0c;表示两个 24 小时制时间 。 24 小时制时间 按 “HH:MM” 进行格式化&#xff0c;其中 HH 在 00 和 23 之间&#xff0c;而 MM 在 00 和 59 之间。最早的 24 小时制时间为 00:00 &#xff0c;最晚的是 23:59 。 在一步操作…

卷积池化计算 深度学习

卷积后图片输出大小 W:图像宽&#xff0c;H:图像高&#xff0c;D:图像深度&#xff08;通道数&#xff09; F&#xff1a;卷积核宽高&#xff0c;N:卷积核&#xff08;过滤器&#xff09;个数 S:步长&#xff0c;P:用零填充个数 卷积后输出图像大小&#xff1a; Width(W-F2P)/S…

Python | 安装Jupyter Notebook及其目录的更改 jupyter问题

20211223 在非输入出双击d删除单元格 20211218 https://www.jianshu.com/p/c51f9504d84f jupyter&#xff0c;ipynb转py 20211117 https://blog.csdn.net/qq_37884273/article/details/81777945 pycharm使用jupyter 快速注释 ctrl/ 当出现这种情况时候 先login out 然后再…

MySQL数据库的优化技术三

如何选择mysql的存储引擎 在开发中&#xff0c;我们经常使用的存储引擎 myisam / innodb/ memory存储引擎针对的是表和数据库 事务&#xff1a;MySQL事务主要用于处理操作量大&#xff0c;复杂度高的数据&#xff0c;比如说&#xff0c;在人员管理系统中&#xff0c;你删除一…

LeetCode简单题之统计数组中峰和谷的数量

题目 给你一个下标从 0 开始的整数数组 nums 。如果两侧距 i 最近的不相等邻居的值均小于 nums[i] &#xff0c;则下标 i 是 nums 中&#xff0c;某个峰的一部分。类似地&#xff0c;如果两侧距 i 最近的不相等邻居的值均大于 nums[i] &#xff0c;则下标 i 是 nums 中某个谷的…