【问题标题】:Algorithm for transforming word "cat" into "dog" [closed]将单词“cat”转换为“dog”的算法[关闭]
【发布时间】:2013-11-20 00:04:32
【问题描述】:

我正在寻找以下谜题的算法:

编写一个程序,通过一次更改 1 个字符将单词“cat”转换为“dog”,同时生成的所有中间单词也是有效单词。给你一个方法,当你将单词作为输入传递给它时,它会告诉你单词是否有效。

有什么想法吗?

【问题讨论】:

  • 你试过了吗?在您向我们展示您的尝试之前,您不会得到任何帮助。
  • 感谢您发布您的要求。现在请发布您的尝试...
  • cat->cot->cog->dog 可能还有其他几种路径可用,但这是最短的最短路径。
  • 是的,您可以使用开源拼写检查库,如 hunspell、GNU Aspell 等作为验证器。还取决于您计划使用的语言。 en.wikipedia.org/wiki/Hunspell 然后,谜语告诉你一次换一个字符。因此,您需要从 dog 到 cat 获取一个字符(让我们天真地从 d->c 开始),尝试验证,如果该单词存在,则继续,如果不使用下一个字符。如果连第三个都不起作用,您需要返回并撤消上一次更改。 und 直到你完成,或者如果谜题无法解决,则退出失败。祝你好运!

标签: algorithm


【解决方案1】:

这是一个图形搜索问题。节点是有效词,起点是“猫”,终点是“狗”。要查找节点的邻居,您可以尝试所有可能的 1 字母更改并检查它们是否产生有效单词。您可以将任何标准搜索算法应用于问题;我推荐depth-first searchbreadth-first search

如果程序只需要为“猫”和“狗”工作,你也可以硬编码答案。正如 Shashank 在 cmets 中提供的那样,

return ['cat', 'cot', 'cog', 'dog']

可能就是你所需要的。

【讨论】:

  • 是的,这将是哥伦布解决方案的鸡蛋!不错!
猜你喜欢
  • 2011-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多