求助大佬(Another string problem)

import java.util.Scanner;

public class Main {static boolean flag = false;

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    StringBuilder s = new StringBuilder(input.next());
    StringBuilder t = new StringBuilder(input.next());
    dfs(s,t,1);
    if (flag){
        System.out.println("YES");
    }else {
        System.out.println("NO");
    }
}


static void dfs(StringBuilder s,StringBuilder t,int update){
    if (Math.abs(s.length() - t.length()) > 1){
        return;
    }
    if (update == 0){
        if (s.toString().equals(t.toString())){
            flag = true;
        }
        return;
    }
    if (s.length() == t.length()){
        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(i) != t.charAt(i)){
                StringBuilder ss = new StringBuilder(s.toString());
                ss.setCharAt(i,t.charAt(i));
                dfs(ss,t,update-1);
            }
        }
    }else if (s.length() < t.length()){
        StringBuilder ss = new StringBuilder(s.toString());
        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(i) != t.charAt(i)){
                ss.insert(i, t.charAt(i));
                dfs(ss,t,update-1);
                return;
            }
        }
        ss.append(t.charAt(t.length() - 1));
        dfs(ss, t, update - 1);
    }else {
        StringBuilder ss = new StringBuilder(s.toString());
        for (int i = 0; i < t.length(); i++) {
            if (s.charAt(i) != t.charAt(i)){
                ss.deleteCharAt(i);
                dfs(ss,t,update-1);
                return;
            }
        }
        ss.deleteCharAt(t.length()-1);
        dfs(ss, t, update - 1);
    }
}

}

全部评论

相关推荐

废物一个0offer:认真的吗二本本科找人工智能岗位
点赞 评论 收藏
分享
仁者伍敌:实习生要工作经验,工作要实习经验
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务