LeetCode 面试题 01.05. 一次编辑

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

很简单的一道中等题。

class Solution:
    def oneEditAway(self, first: str, second: str) -> bool:
        
        num1 = len(first)
        num2 = len(second)

        if abs(num1 - num2) > 1:
            return False

        if first == second:
            return True

        for i in range(min(num1, num2)):
            if first[i] == second[i]:
                pass
            else:
                # 删除/插入是否可行
                if num1 < num2:
                    if first[i:] == second[i+1:]:
                        return True

                if num1 > num2:
                    if first[i+1:] == second[i:]:
                        return True

                # 替换是否可行
                if first[i+1:] == second[i+1:]:
                    return True

                return False

        return True
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容