相差一个字母的单词

时间:2019-03-13 23:06:42

标签: java

我试图从文件中读取单词(我已经做过),然后将“相差一个字母”的单词写入新的输出文件(PrintWriter类)。我不知道如何比较相差一个字母的单词。我对ArrayList不太熟悉。我在这里先向您的帮助表示感谢。 这是我的代码:

ArrayList<String> words2=new ArrayList<>();
// I created words2 so i could compare it to words
for (int i = 0; i < words.size(); i++) {  
 // words includes the words read from file 
        System.out.print(words.get(i)+" ");
          for(int j=0; j<words.size();j++){
             words2=words;

1 个答案:

答案 0 :(得分:1)

首先,您需要定义单词在一个字符中不同的所有情况。例如,以下两个是否被视为有效案例?还有其他吗?

might vs. mighty
male vs. mall

如果只有一种情况您认为有效,则可以实施一种算法,将每个单词与所有其他单词进行比较,逐个字母比较并计算不相等的单词,仅过滤具有“差异计数”恰好为1。

否则,有一种称为Levenshtein distance的已知算法,您可以实现该算法,也可以找到实现该算法并使用它的库。