-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEditDistance.java
More file actions
29 lines (27 loc) · 1 KB
/
EditDistance.java
File metadata and controls
29 lines (27 loc) · 1 KB
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
import java.util.*;
public class EditDistance {
public static int minEditDistance(String X, String Y) {
int n = X.length(), m = Y.length();
int[][] C = new int[n + 1][m + 1];
for (int i = 0; i <= n; i++)
C[i][0] = i;
for (int j = 0; j <= m; j++)
C[0][j] = j;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
if (X.charAt(i - 1) == Y.charAt(j - 1))
C[i][j] = C[i - 1][j - 1];
else
C[i][j] = Math.min(C[i - 1][j - 1] + 2, Math.min(C[i - 1][j] + 1, C[i][j - 1] + 1));
return C[n][m];
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter first string: ");
String X = sc.nextLine();
System.out.print("Enter second string: ");
String Y = sc.nextLine();
sc.close();
System.out.println("Minimum edit distance: " + minEditDistance(X, Y));
}
}