在levenshtein距离中,你问这个问题,给出这两个字符串,他们的levenshtein距离是多少。你将如何获得一个字符串和levenshtein距离并在levenshtein距离内生成所有字符串。 (它也会采用字符集)。所以,如果我传入一个字符串x和一个距离d。然后它会给我编辑距离内的所有字符串,包括d-1和d-2 .... d-n; (n 预期功能: 请注意,该程序能够生成>>> getWithinDistance('apple',2,{'a','b',' '})
['applea','appleb','appel','app le'...]
app le
,因为字符集中包含空格。
答案 0 :(得分:6)
有一种称为Levenshtein automaton的数据结构。您可以从一组字符串(可能只有一个成员)和固定距离 k 构建它,然后您可以查询距离最多 k 的所有字符串它存储的任何字符串。讨论了Python实现here。
或者,您可以使用回溯功能对此类字符串进行深度限制搜索。