如何解决这个修改过的字梯问题?

时间:2019-07-17 09:28:41

标签: c++ breadth-first-search

这是阶梯问题一词: 给定两个单词(beginWord和endWord)以及词典的单词列表,找到从beginWord到endWord的最短转换序列的长度,例如:

一次只能更改一个字母。 每个转换的单词都必须存在于单词列表中。请注意,beginWord不是转换后的单词。

现在与修改一起,我们可以删除或添加元素。 如果可能,我们必须找到最小的步骤,以将string1转换为string2。

此问题具有良好的BFS结构。让我们使用问题陈述中的示例进行说明。

beginWord = "hit",
endWord = "cog",
wordList = "hot","dot","dog","lot","log","cog"

由于一次只能更改一个字母,因此,如果我们从“ hit”开始,则只能更改为仅具有一个字母不同的单词(在本例中为“ hot”)。用图论的术语来说,“热”是“命中”的邻居。这个想法仅仅是从beginWord开始,然后访问其邻居,然后访问其邻居的未访问邻居,直到我们到达endWord。这是典型的BFS结构。

但是现在由于我们被允许添加/删除,我该如何进一步操作?

0 个答案:

没有答案