Skip to content

Commit 21c00c0

Browse files
authored
Merge pull request #271 from juhig/master
EditDistance DP Code Added
2 parents cd4ccd0 + 55e78d1 commit 21c00c0

File tree

1 file changed

+73
-0
lines changed

1 file changed

+73
-0
lines changed

Java/EditDistance.java

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
package selfdp;
2+
3+
public class editdistance {
4+
public static int editdr(String s1, String s2) {
5+
if (Math.min(s1.length(), s2.length()) == 0)
6+
return Math.max(s1.length(), s2.length());
7+
char ch1 = s1.charAt(0);
8+
char ch2 = s2.charAt(0);
9+
String ros1 = s1.substring(1);
10+
String ros2 = s2.substring(1);
11+
if (ch1 == ch2)
12+
return editdr(ros1, ros2);
13+
else {
14+
int a = editdr(s1, ros2);// d
15+
int b = editdr(ros1, s2);// i
16+
int c = editdr(ros1, ros2);// r
17+
int r = Math.min(Math.min(a, b), c) + 1;
18+
//System.out.println(r);
19+
return r;
20+
21+
}
22+
23+
}
24+
25+
static String x;
26+
static String y;
27+
28+
public static int editdTD(String s1, String s2, int strg[][]) {
29+
30+
if (Math.min(s1.length(), s2.length()) == 0) {
31+
return Math.max(s1.length(), s2.length());
32+
}
33+
34+
char ch1 = s1.charAt(0);
35+
char ch2 = s2.charAt(0);
36+
String ros1 = s1.substring(1);
37+
String ros2 = s2.substring(1);
38+
int si1 = x.indexOf(ch1);
39+
int si2 = y.indexOf(ch2);
40+
// System.out.println(ch1+" "+si1);
41+
42+
if (strg[si1][si2] != 0) {
43+
// System.out.println("hi");
44+
return strg[si1][si2];
45+
}
46+
47+
if (ch1 == ch2) {
48+
49+
return editdTD(ros1, ros2, strg);
50+
} else {
51+
int a = editdTD(s1, ros2, strg);// d
52+
int b = editdTD(ros1, s2, strg);// i
53+
int c = editdTD(ros1, ros2, strg);// r
54+
int r = Math.min(Math.min(a, b), c) + 1;
55+
strg[si1][si2] = r;
56+
//System.out.println(r);
57+
58+
return r;
59+
}
60+
61+
}
62+
63+
public static void main(String[] args) {
64+
// TODO Auto-generated method stub
65+
x = "sundayfkl";
66+
y = "saturdayjuhi";
67+
System.out.println(editdr(x, y));
68+
System.out.println("-------------");
69+
System.out.println(editdTD(x, y, new int[x.length()][y.length()]));
70+
71+
}
72+
73+
}

0 commit comments

Comments
 (0)