通过有效单词将一个单词转换为另一个单词的算法
我遇到了这种编辑距离问题的变体:
设计一种将源词转换为目标词的算法。例如:从头到尾,在每个步骤中,您只能替换一个字符,并且该单词必须有效。您将得到一本字典。
显然这是编辑距离问题的一种变体,但是在编辑距离中,我并不关心单词是否有效。因此,如何添加此要求以编辑距离。
回答:
可以将其建模为图问题。您可以将单词视为图的节点,并且当且仅当它们的长度相同且一个字符不同时,两个节点才被连接。
您可以预处理字典并创建此图,如下所示:
stack jack | |
| |
smack back -- pack -- pick
然后,您可以从单词到代表单词的节点进行映射,为此,您可以使用哈希表,高度平衡的BST …
一旦完成上述映射,您要做的就是查看两个图节点之间是否存在路径,可以使用BFS或DFS轻松完成。
因此,您可以将算法总结为:
preprocess the dictionary and create the graph.Given the two inputs words w1 and w2
if length(w1) != length(w2)
Not possible to convert
else
n1 = get_node(w1)
n2 = get_node(w2)
if(path_exists(n1,n2))
Possible and nodes in the path represent intermediary words
else
Not possible
以上是 通过有效单词将一个单词转换为另一个单词的算法 的全部内容, 来源链接: utcz.com/qa/405750.html