parent
285bce837a
commit
295fb6c179
|
|
@ -1,43 +0,0 @@
|
||||||
public class levenshtein {
|
|
||||||
public static boolean oneEditAway(String first, String second) {
|
|
||||||
/* Length checks. */
|
|
||||||
if (Math.abs(first.length() - second.length()) > 1) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Get shorter and longer string.*/
|
|
||||||
String s1 = first.length() < second.length() ? first : second;
|
|
||||||
String s2 = first.length() < second.length() ? second : first;
|
|
||||||
|
|
||||||
int index1 = 0;
|
|
||||||
int index2 = 0;
|
|
||||||
boolean foundDifference = false;
|
|
||||||
|
|
||||||
while (index2 < s2.length() && index1 < s1.length()) {
|
|
||||||
if (s1.charAt(index1) != s2.charAt(index2)) {
|
|
||||||
/* Ensure that this is the first difference found.*/
|
|
||||||
if (foundDifference) return false;
|
|
||||||
foundDifference = true;
|
|
||||||
if (s1.length() == s2.length()) { // On replace, move shorter pointer
|
|
||||||
index1++;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
index1++; // If matching, move shorter pointer
|
|
||||||
}
|
|
||||||
index2++; // Always move pointer for longer string
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
|
||||||
String a = "palee";
|
|
||||||
String b = "pale";
|
|
||||||
boolean isOneEdit1 = oneEditAway(a, b);
|
|
||||||
System.out.println(a + ", " + b + ": " + isOneEdit1);
|
|
||||||
|
|
||||||
String c = "pale";
|
|
||||||
String d = "pkle";
|
|
||||||
boolean isOneEdit2 = oneEditAway(c, d);
|
|
||||||
System.out.println(c + ", " + d + ": " + isOneEdit2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Loading…
Reference in New Issue