日期:2014-05-20 浏览次数:20840 次
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];
}
}