On se retrouve aujourd'hui pour la solution du précédent #KataOfTheWeek proposé par Renaud en début de semaine !
import static java.lang.Math.min;
public class Levenshtein {
public static void main(String[] args) {
System.out.println(levenshteinDistance(args[0], args[1]));
}
private static int levenshteinDistance(String a, String b) {
int[][] distances = initializeArray(a, b);
for (int i = 1; i < a.length() + 1; i++){
for (int j = 1; j < b.length() + 1; j++){
distances[i][j] = a.charAt(i-1) == b.charAt(j-1) ?
distances[i-1][j-1] :
(1 + min(min(distances[i-1][j], distances[i][j-1]), distances[i-1][j-1]));
}
}
return distances[a.length()][b.length()];
}
private static int[][] initializeArray(String a, String b) {
int[][] distances = new int[a.length()+1][b.length()+1];
for (int i = 0; i < a.length() + 1; i++) {
distances[i][0] = i;
}
for (int j = 0; j < b.length() + 1; j++) {
distances[0][j] = j;
}
return distances;
}
}
A bientôt pour un nouveau #KataOfTheWeek !