假设我的词典中有两个单词(等长),第一个是DAMP
,第二个是LIKE
。我将在每次尝试(转弯)中仅更改DAMP
中的一个字符,当我更改其中的一个字符时,应该是字典中的现有单词。一个函数将控制字典是字典中已更改的单词或不public boolean isInDictionary(String myword)
当我找到单词时我想将其写入控制台。提前致谢。只需要一个想法而不是所有的算法。
E.g。
单词: DAMP,LIKE
步骤: DAMP - &gt; LAMP - &gt; LIMP - &gt; LIME - &gt; < / strong> LIKE
答案 0 :(得分:1)
您应该使用Hamming Distance。对于给定的两个相等长度的单词,它是相应符号不同的位置数。
您的算法可能如下所示:
将你的单词组织成一个图形结构,只有当它们之间的汉明距离等于1时才连接两个单词,即:DAMP和LAMP将连接(hd为1),但是DAMP和LIMP - no(hd)是2)。
对于给定的两个单词,检查图表中第一个单词和第二个单词之间是否存在路径。如果是,请写入路径。为此,您可以使用任何pathfinind算法。
实施例
单词:DAMP,LIKE
我们正在搜索图表,发现这些词之间有一条路径。例如,使用Dijkstra's algorithm我们可以找到以下路径:
路径:DAMP - &gt;灯 - &gt; LIMP - &gt; LIME - &gt; LIKE