forked from hongtaocai/code_interview
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEditDistance.cpp
More file actions
36 lines (36 loc) · 973 Bytes
/
EditDistance.cpp
File metadata and controls
36 lines (36 loc) · 973 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
class Solution {
public:
int minDistance(string word1, string word2) {
int n1 = (int)word1.length()+1;
int n2 = (int)word2.length()+1;
int** d = new int*[n1];
for(int i=0;i<n1;i++) {
d[i] = new int[n2];
for(int j=0;j<n2;j++) {
d[i][j] = 0;
}
}
for(int i=0;i<n1;i++) {
d[i][0] = i;
}
for(int j=0;j<n2;j++) {
d[0][j] = j;
}
for(int i=1;i<n1;i++) {
for(int j=1;j<n2;j++) {
if(word1[i-1] == word2[j-1]) {
d[i][j] = d[i-1][j-1];
} else {
d[i][j] = min(d[i-1][j-1] + 1, d[i][j-1] +1);
d[i][j] = min(d[i][j], d[i-1][j]+1);
}
}
}
int res = d[n1-1][n2-1];
for(int i=0;i<n1;i++) {
delete[] d[i];
}
delete[] d;
return res;
}
};