题解 | #计算字符串的编辑距离#
计算字符串的编辑距离
http://www.nowcoder.com/practice/3959837097c7413a961a135d7104c314
public class Main {
public static void main(String[] args){
Scanner in = new Scanner(System.in);
while (in.hasNext()) {
int len = Leven(in.next(), in.next());
System.out.println(len);
}
}
public static int Leven(String a, String b){
int[][] arr = new int[a.length()+1][b.length()+1];
for(int j=0; j<=b.length(); j++){
arr[0][j] = j;
}
for(int i=0; i<=a.length(); i++){
arr[i][0] = i;
}
for(int i=1; i<=a.length(); i++){
for(int j=1; j<=b.length(); j++){
if(a.charAt(i-1) == b.charAt(j-1)){
arr[i][j] = arr[i-1][j-1];
} else {
arr[i][j] = Math.min(arr[i-1][j-1], Math.min(arr[i-1][j], arr[i][j-1])) + 1;
}
}
}
return arr[a.length()][b.length()];
}
}