我正在为下面的谜语寻找算法:
编写一个程序,通过一次更改1个字符将单词“cat”转换为“dog”,并且在执行此操作时,生成的所有临时单词也是有效单词。您将获得一个方法,当您将单词作为输入传递给它时,它会告诉您单词是否有效。
任何想法?
答案 0 :(得分:4)
这是图搜索问题。节点是有效的单词,起点是“cat”,终点是“dog”。要查找节点的邻居,您可以尝试所有可能的1个字母的更改,并检查它们是否生成有效的单词。您可以对问题应用任何标准搜索算法;我建议depth-first search或breadth-first search。
如果程序只需要为“cat”和“dog”工作,你也可以硬编码答案。正如Shashank在评论中提供的那样,
return ['cat', 'cot', 'cog', 'dog']
可能就是您所需要的一切。