编辑距离(一)

 public int editDistance (String str1, String str2) {
        // write code here

        int n1=str1.length();
        int n2=str2.length();

        int[][] dp=new int[n1+1][n2+1];

        for (int i=1;i<=n1;i++){
            dp[i][0]=dp[i-1][0]+1;
        }

        for (int i=0;i<=n2;i++){
            dp[0][i]=dp[0][i-1]+1;
        }

        for (int i=1;i<=n1;i++){
            for (int j=1;j<=n2;j++){

                if(str1.charAt(i-1)==str2.charAt(j-1)){
                    dp[i][j]=dp[i-1][j-1];
                }else {
                    dp[i][j]=Math.min(dp[i-1][j-1],Math.min(dp[i-1][j],dp[i][j-1]))+1;
                }

            }
        }
        return dp[n1][n2];
    }


全部评论

相关推荐

05-30 12:03
山西大学 C++
offer来了我跪着接:不是骗子,等到测评那一步就知道为啥这么高工资了
点赞 评论 收藏
分享
05-20 13:59
门头沟学院 Java
米黑子米黑子:你这个成绩不争取下保研?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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