文巾解题 01.05. 一次编辑

Posted UQI-LIUWJ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文巾解题 01.05. 一次编辑相关的知识,希望对你有一定的参考价值。

1 题目描述

2 解题思路:

建立一个指针i+一个错位个数计数器num(表示长的字符的第i+num位和短的字符的第i位匹配)

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

        if(abs(lf-ls)>1):
            return False
#长度相差超过1的话,直接false

        if(ls>lf):
            first,second=second,first
            lf,ls=ls,lf
#长的在前面,短的在后面
        

        num=0

        print(lf,ls)
        if(lf==ls):
            i=0
            while(i<lf):
                if(first[i]==second[i]):
                    i+=1
                else:
                    if(num>=1):
                        return(False)
                    else:
                        num+=1
                        i+=1
#一样长——最多一个字符可以被替换

        elif(lf>ls):
            i=0
            while(i<ls):
                #print(i,num,first[i+num],second[i])
                if(first[i+num]==second[i]):
                    i+=1
                else:
                    if(num>=1):
                        return(False)
                    else:
                        num+=1
#差一个长度——一个字符可以被替换
        return(True)

以上是关于文巾解题 01.05. 一次编辑的主要内容,如果未能解决你的问题,请参考以下文章

文巾解题 1446. 连续字符

文巾解题 面试题 01.01. 判定字符是否唯一

文巾解题 177. 第N高的薪水

文巾解题 82. 删除排序链表中的重复元素 II

文巾解题 70. 爬楼梯

缺迪杰斯特拉和SPFA] 文巾解题 787. K 站中转内最便宜的航班