返回题解分享
讨论 / 题解分享/ 帖子详情

编辑距离 - 题解

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        String x=sc.next();
        String y=sc.next();
        int[][] dp=new int[x.length()+1][y.length()+1];
        //初始化
        for (int i = 0; i <= x.length(); i++) {
            dp[i][0]=i;
        }
        for (int j = 0; j <= y.length(); j++) {
            dp[0][j]=j;
        }


        for (int i = 0; i < x.length(); i++) {
            for (int j = 0; j < y.length(); j++) {

                if (x.charAt(i)!=y.charAt(j)){
                    dp[i+1][j+1]=Math.min(  dp[i][j]+1 , Math.min( dp[i][j+1]+1,dp[i+1][j]+1 ) );
                }else{
                    dp[i+1][j+1]=dp[i][j];
                }
            }
        }
        System.out.println(dp[x.length()][y.length()]);

    }
}
0 回复 0 转发 1 喜欢 1 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!