从java中的另一个单词中查找特定单词

时间:2014-07-23 19:24:11

标签: java string dictionary

假设我的词典中有两个单词(等长),第一个是DAMP,第二个是LIKE。我将在每次尝试(转弯)中仅更改DAMP中的一个字符,当我更改其中的一个字符时,应该是字典中的现有单词。一个函数将控制字典是字典中已更改的单词或不public boolean isInDictionary(String myword)当我找到单词时我想将其写入控制台。提前致谢。只需要一个想法而不是所有的算法。

E.g。
单词: DAMP,LIKE
步骤: DAMP - &gt; LAMP - &gt; LIMP - &gt; LIME - &gt; < / strong> LIKE

1 个答案:

答案 0 :(得分:1)

您应该使用Hamming Distance。对于给定的两个相等长度的单词,它是相应符号不同的位置数。

您的算法可能如下所示:

  1. 将你的单词组织成一个图形结构,只有当它们之间的汉明距离等于1时才连接两个单词,即:DAMP和LAMP将连接(hd为1),但是DAMP和LIMP - no(hd)是2)。

  2. 对于给定的两个单词,检查图表中第一个单词和第二个单词之间是否存在路径。如果是,请写入路径。为此,您可以使用任何pathfinind算法。

  3. 实施例

    单词:DAMP,LIKE

    我们正在搜索图表,发现这些词之间有一条路径。例如,使用Dijkstra's algorithm我们可以找到以下路径:

    路径:DAMP - &gt;灯 - ​​&gt; LIMP - &gt; LIME - &gt; LIKE