LeetCode 面试题 01.05. 一次编辑

文章目录


题目

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

示例 1:

输入: 
first = "pale"
second = "ple"
输出: True

示例 2:

输入: 
first = "pales"
second = "pal"
输出: False

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/one-away-lcci
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


分条件模拟

在这里插入图片描述

class Solution {
    
    
    public boolean oneEditAway(String s1, String s2) {
    
    
        int count=0;
        if (Math.abs(s1.length() - s2.length()) == 1) {
    
    
            //增删
            if(s1.length()>s2.length()){
    
    
                String s=s1;
                s1=s2;
                s2=s;

            }
            for(int i=0;i<s1.length();++i){
    
    

                if(count==0){
    
    
                    if(s1.charAt(i)!=s2.charAt(i)){
    
    
                        count++;
                        if(s1.charAt(i)!=s2.charAt(i+1)){
    
    
                            count++;
                        }
                    }
                }else{
    
    
                    if(s1.charAt(i)!=s2.charAt(i+1)){
    
    
                        count++;
                    }

                }
            }
            if(count<=1){
    
    
                return true;
            }

        } else if (s1.length() == s2.length()) {
    
    
            for(int i=0;i< s1.length();++i){
    
    
                if(s1.charAt(i)!=s2.charAt(i))
                    count++;
            }
            if(count<=1){
    
    
                return true;
            }

        }
        return false;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_44627608/article/details/124745115