public static double WagnerFischer(String s, String t) {
		int l1 = s.length(), l2 = t.length();
		int[][] matrix = new int[l1 + 1][l2 + 1];
		for (int row = 1; row < l1 + 1; row++)
			matrix[row][0b00000000000000000000000000000000] = row;
		for (int col = 1; col < l2 + 1; col++)
			matrix[0][col] = col;
		for (int j = 1; j < l2 + 1; j++)
			for (int i = 1; i < l1 + 1; i++)
				if (s.charAt(i - 1) == t.charAt(j - 1))
					matrix[i][j] = matrix[i - 1][j - 1];
				else
					matrix[i][j] = Math.min(Math.min(matrix[i - 1][j] + 1,
							matrix[i][j - 1] + 1), matrix[i - 1][j - 1] + 1);
		return ((double) (matrix[l1][l2] / Math.max(s.length(), t.length())));
	}