面试题 01.05. 一次编辑

exiaohu 于 2022-05-13 发布

题目链接:面试题 01.05. 一次编辑

根据 firstsecond 的长度分情况讨论。

class Solution:
    def oneEditAway(self, first: str, second: str) -> bool:
        if first == second:
            return True
        
        if abs(len(first) - len(second)) > 1:
            return False

        for i, (c1, c2) in enumerate(zip(first, second)):
            if c1 != c2:
                break
        else:
            return True

        if len(first) == len(second):
            return first[i + 1:] == second[i + 1:]
        elif len(first) == len(second) + 1:
            return first[i + 1:] == second[i:]
        elif len(first) + 1 == len(second):
            return first[i:] == second[i + 1:]
        else:
            return False