系统之家提供 Windows 系统、Ghost 系统、驱动与常用软件的安全下载及安装教程。 后台管理
📢 欢迎访问系统之家!所有资源均经过安全检测。

LeetCode 面试题 01.05. 一次编辑

发布时间:2026-10-11 | 浏览:1
📥 下载地址(文章开头)
装机神器,可安装一切系统,纯净版,英文版,繁体版 ,精简版,原版等等等
时间比较少,之后只记重点思路,就不写长篇了 字符串有三种编辑操作: 插入一个字符、删除一个字符或者替换一个字符。 给定两个字符串,编写一个函数判定它们是否只需要一次(或者零次)编辑。 注意到这题的要求比较特殊,只需要一次编辑。就像题目说的那样,一次编辑有增、删、改三种可能性,但是无论如何改动前后的字符串长度差异最多为 1(增:1,删:1,改:0)。因此分别从前往后和从后往前遍历,分别找到前缀和后缀的最大公共部分,然后校验前缀 + 后缀的长度是否大等于 较长字符串的长度 - 1 即可。时间复杂度 O ( n ) ,空间复杂度 O ( 1 ) 。 注意空字符串导致指针越界的 corner case 。
📥 下载地址(文章中间)
装机神器,可安装一切系统,纯净版,英文版,繁体版 ,精简版,原版等等等
类似于 Levenstein Distance 的思路,但是这题要求比较特殊,只需要一次编辑,因此可以简化很多。具体代码之后补充。 最常规的思路,LC 上有一个清楚的题解。 这道题最优题解巧妙的地方在于利用了“一次编辑”的特殊性,使用双指针分别从前向后和从后向前比较,最后判断没有被比较到的字符串长度是否小于等于 1。不过需要考虑空字符串的 corner case。
📥 下载地址(文章结尾)
装机神器,可安装一切系统,纯净版,英文版,繁体版 ,精简版,原版等等等