Edit distance (Levenshtein-Distance) algorithm explanation