class Solution {
public int minDistance(String word1
, String word2
) {
int w1len
= word1
.length();
int w2len
= word2
.length();
int[][] dp
= new int[w1len
+1][w2len
+1];
if(w1len
<= 0 || w2len
<= 0){
return w1len
+ w2len
;
}
for (int i
=1; i
<=w1len
; i
++){
dp
[i
][0] = dp
[i
-1][0] + 1;
}
for (int j
=1; j
<=w2len
; j
++){
dp
[0][j
] = dp
[0][j
-1] + 1;
}
for(int i
=1; i
<=w1len
; i
++){
for(int j
=1; j
<=w2len
; j
++){
int ijIsSame
= word1
.charAt(i
-1)!=word2
.charAt(j
-1) ? 1 : 0;
dp
[i
][j
] = Math
.min(Math
.min(dp
[i
-1][j
]+1, dp
[i
][j
-1]+1), dp
[i
-1][j
-1] + ijIsSame
);
}
}
return dp
[w1len
][w2len
];
}
}
转载请注明原文地址: https://lol.8miu.com/read-30637.html