Python 程序员面试金典 1.05. 一次编辑

在这里插入图片描述

若长度差如果大于2,则至少需要两次改动才可一致
将顺序换为first短,second长
当发现不一致时,只有两种情况满足修改一次
second多一个,所以判断是否first[i:] == second[i + 1:]
second当前元素不一致,后面都相同,所以判断是否first[i+1:] == second[i+1:]

class Solution:
  def oneEditAway(self, first: str, second: str) -> bool:
    if abs(len(first) - len(second)) > 1:	//长度差大于2
      return False
    if len(first) > len(second):	//保证first比second短
      first, second = second, first
    for i in range(len(first)):	//遍历短的字符串
      if first[i] == second[i]: 
        continue	//继续对比两字符串相同下标的字符
      return first[i:] == second[i + 1:] or first[i + 1:] == second[i + 1:]	//到这里下标为i之前的字符都相等,那么就比对i后面的字符即可,两种情况
    return True
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值