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 !