leetcode 每日一题 面试题 01.05. 一次编辑

leetcode 每日一题 面试题 01.05. 一次编辑

class Solution {
   public boolean oneEditAway(String first, String second) {
        char[] a = first.toCharArray();
        char[] b = second.toCharArray();
        return f(a.length > b.length ? a : b, b.length >= a.length ? a : b);
    }

    private boolean f(char[] a, char[] b) {
        if(a.length - 1 > b.length){
            return false;
        }
      
        boolean x = false;
        if(a.length == b.length){
            for (int i = 0; i < a.length; i++) {
                if(a[i] == b[i]){
                    continue;
                }
                if(x){
                    return false;
                }
                x = true;
            }
            return true;
        }
        int i = 0;
        int j = 0;
        while (i < a.length && j < b.length){
            if(a[i] == b[j]){
                i++;
                j++;
            }else{
                if(x){
                    return false;
                }else {
                    x = true;
                    i++;
                }
            }
        }
        return true;
    }
}

 

posted @ 2022-05-13 09:31  java架构师1  阅读(19)  评论(0)    收藏  举报