日期:2014-05-20 浏览次数:20701 次
package cie.bing.string; public class EDlength { public static int min(int a,int b,int c) { int t = a < b ? a : b; return t < c ? t : c; } public static int edit(char P[],char T[],int m,int n) { int i,j; int D[][]=new int[m+1][n+1]; for(i=1;i<=m;i++) { for(j=1;j<=n;j++) { if(i==1 && j==1) { if(P[i-1]==T[j-1]) { D[i][j]=0; } else { D[i][j]=D[i-1][j-1]+1; } } else if(i==1 && j!=1) { if(P[i-1]==T[j-1]) { D[i][j]=D[i][j-1]+1; } else { D[i][j]=j-1; } } else if(i!=1 && j==1) { if(P[i-1]==T[j-1]) { D[i][j]=D[i-1][j]+1; } else { D[i][j]=i-1; } } else { if(P[i-1]==T[j-1]) D[i][j]=D[i-1][j-1]; else if(P[i-1]!=T[j-1]) D[i][j]=min(D[i-1][j-1]+1,D[i-1][j]+1,D[i][j-1]+1); } } } return D[m][n]; } }