力扣-面试题 01.05题 一次编辑(C++)- 双指针

题目链接:https://leetcode-cn.com/problems/one-away-lcci/
题目如下:
在这里插入图片描述

class Solution {
    
    
public:
    bool oneEditAway(string first, string second) {
    
    
        //情况1、替换:两个字符串长度相等
        //情况2 、增加/删除:长=短+1
        int m=first.size(),n=second.size();
        if(abs(m-n)>1) return false;

        int i=0,j=0;
        //遇到第一个不匹配的字符,则跳出循环
        while(i<m&&j<n&&first[i]==second[j]){
    
    
            i++;
            j++;
        }

        if(m==n){
    
    //若两个长度相等,则只允许一个字母出现不同
            i++;
            j++;
        }else if(m>n){
    
    //说明第一个string多一个
            i++;
        }else{
    
    //说明第二个string多一个
            j++;
        }

        //完成后继续前行
        while(i<m&&j<n){
    
    
            if(first[i]==second[j]){
    
    i++;j++;}
            else return false;
        }
        return true;
    }
};

おすすめ

転載: blog.csdn.net/qq_40467670/article/details/121584878