动态规划-编辑距离

递推公式:levenST[ i ][ j ] = minOfTreeNum( levenST[ i-1 ][ j ] + 1, levenST[ i ][ j-1 ] + 1, levenST [i-1 ][ j-1 ] + eq );

code:

import java.util.Scanner;
public class Main8 {
    public static void main(String args[]) {
        Scanner s = new Scanner(System.in);
         String str1 = s.nextLine();
         String str2 = s.nextLine();
         int len1 = str1.length();
         int len2 = str2.length();
         //这样设置表示我使用str1与str2比较
         int ar[][] = new int[len1+1][len2+1];
         //初始化最简单的情况:0->i或0->j
         for(int i=0;i<len1+1;i++) {
             ar[i][0] = i;
         }
         for(int i=0;i<len2+1;i++) {
             ar[0][i] = i;
         }
          
         //开始逐个字符比较:从1开始
         for(int i=1;i<len1+1;i++) {
             for(int j=1;j<len2+1;j++) {
                 int temp = ar[i-1][j-1];
                 if(str1.charAt(i-1) != str2.charAt(j-1)) {
                     temp+=1;
                 }
                 ar[i][j] = Math.min(ar[i-1][j]+1, Math.min(ar[i][j-1]+1, temp));
             }
         }
         for(int i=0;i<len1+1;i++) {
             for(int j=0;j<len2+1;j++) {
                 System.out.print(ar[i][j]+" ");
             }
             System.out.println("");
         }
        s.close();
    }
 
}

  博客参考:https://www.cnblogs.com/www-helloworld-com/p/10202923.html

posted @ 2020-04-26 16:02  Yrc的楚门的世界  阅读(142)  评论(0)    收藏  举报