Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将一个单词转换为另一个单词的算法,每次迭代都要更改每个字母,这应该形成另一个有意义的单词?_Java_Algorithm_Data Structures - Fatal编程技术网

Java 将一个单词转换为另一个单词的算法,每次迭代都要更改每个字母,这应该形成另一个有意义的单词?

Java 将一个单词转换为另一个单词的算法,每次迭代都要更改每个字母,这应该形成另一个有意义的单词?,java,algorithm,data-structures,Java,Algorithm,Data Structures,我想做一个把一个词换成另一个词的算法。例如,给定的单词是“MUD”,我需要将其转换为“BED”。对于每个迭代,我可以更改一个字符,但这应该形成另一个有意义的单词。例如,“MUD”可以改为“MAD”。像这样,我需要找到最短的路径将“泥”转换为“床” 提供了一个单独的方法来查找有效单词。IsWord()是一个方法,无论给定的字符串是否有效,它都将为我们提供布尔结果。所以不用担心 我也不需要担心效率或代码行等。有人知道如何制作这个算法吗。如果是,请帮助我 提前谢谢 (我知道我们必须使用树,必须进行二进

我想做一个把一个词换成另一个词的算法。例如,给定的单词是“MUD”,我需要将其转换为“BED”。对于每个迭代,我可以更改一个字符,但这应该形成另一个有意义的单词。例如,“MUD”可以改为“MAD”。像这样,我需要找到最短的路径将“泥”转换为“床”

提供了一个单独的方法来查找有效单词。IsWord()是一个方法,无论给定的字符串是否有效,它都将为我们提供布尔结果。所以不用担心

我也不需要担心效率或代码行等。有人知道如何制作这个算法吗。如果是,请帮助我

提前谢谢


(我知道我们必须使用树,必须进行二进制遍历,但我不知道如何在这个算法中使用它)

用以下方法创建一个图:

如果您可以在一个步骤中从一个单词转到另一个单词,则每个单词都是一个节点,两个节点是连接的

现在找出原始单词和最终单词之间的最短距离和路径

请参阅:关于如何计算最短路径。

这称为
查看Wolfram博客上的帖子。

在每次迭代中,将所有可能的新词从你拥有的词中提取出来,并将它们收集到一个列表、集合或任何东西中。过滤掉你以前已经有过的重复和单词。例如:

1. (BED)
2. (BAD, BET, ....)
3. (MAD, BAN, ...., BUT, BOT, ....)

要么以一个空列表结束,然后问题无法解决,要么搜索的单词在列表中。

首先是一个包含元素(字符串)的排序队列。 每个元素都有一个到目标词的等级/距离(根据启发式)。这可能是一个错误。排序队列使用这个距离将最接近目标的单词推到顶部


你记下你的第一个单词,把它添加到队列中。从队列中提取第一个元素,展开它的所有子元素(通过一次转换可以从中获得的单词)并将它们放入队列中。执行此操作,直到从队列中获取的元素是您正在搜索的元素或队列为空。

这是作业吗?添加家庭作业标签。。同时输入你已经尝试过的代码。把你自己放在电脑里。泥浆->医疗->床或泥浆->芽->床