Skip to content

Commit d64ddf0

Browse files
authored
Merge pull request #141 from nishagii/feature/minimum-edit-distance-java
PR : DP problem Minimum Edit Distance in Java
2 parents 3d130d3 + e4e520d commit d64ddf0

1 file changed

Lines changed: 30 additions & 0 deletions

File tree

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
public class MinimumEditDistance {
2+
public static void main(String[] args) {
3+
String str1 = "kitten";
4+
String str2 = "sitting";
5+
System.out.println("Minimum Edit Distance between \"" + str1 + "\" and \"" + str2 + "\" is: " + minEditDistance(str1, str2));
6+
}
7+
8+
public static int minEditDistance(String str1, String str2) {
9+
int m = str1.length();
10+
int n = str2.length();
11+
int[][] dp = new int[m + 1][n + 1];
12+
13+
for (int i = 0; i <= m; i++) {
14+
for (int j = 0; j <= n; j++) {
15+
if (i == 0) {
16+
dp[i][j] = j; // Insert all characters of str2
17+
} else if (j == 0) {
18+
dp[i][j] = i; // Remove all characters of str1
19+
} else if (str1.charAt(i - 1) == str2.charAt(j - 1)) {
20+
dp[i][j] = dp[i - 1][j - 1]; // Characters match
21+
} else {
22+
dp[i][j] = 1 + Math.min(dp[i - 1][j], // Remove
23+
Math.min(dp[i][j - 1], // Insert
24+
dp[i - 1][j - 1])); // Replace
25+
}
26+
}
27+
}
28+
return dp[m][n];
29+
}
30+
}

0 commit comments

Comments
 (0)