gpt4 book ai didi

java - 找到最长的连接单词

转载 作者:行者123 更新时间:2023-12-02 11:45:32 25 4
gpt4 key购买 nike

我有一本字典,里面有很多单词。我希望搜索最长的连接单词(即,完全由文件中较短的单词)。我根据该方法的长度给该方法一个降序的单词。如何检查是否已使用字典中的所有符号?

 public boolean tryMatch(String s, List dictionary) {
String nextWord = new String();
int contaned = 0;

//Цикл перебирающий каждое слово словаря
for(int i = 1; i < dictionary.size();i++) {

nextWord = (String) dictionary.get(i);
if (nextWord == s) {
nextWord = (String) dictionary.get(i + 1);
}

if (s.contains(nextWord)) {

contaned++;
}

}

if(contaned >1) {
return true;
}
return false;
}

最佳答案

如果您有一个排序的单词列表,查找复合词很容易,但只有当这些单词位于集合中时,它才会表现良好。

让我们看一下复合词 football,当然假设 ballfoot 都在工作列表中。

根据定义,任何使用 foot 作为第一个子词的复合词必须以 foot 开头。

因此,在迭代列表时,请记住当前 Activity 的“词干”单词,例如当看到时,记住它。

现在,当看到 football 时,您会检查该单词是否以词干单词开头。如果不是,则清除词干,并使新词成为词干。

如果是,则新词 (football) 就是复合词的候选词。词干后面的部分是ball,所以我们需要检查它是否是一个单词,如果是,我们就找到了一个复合词。

对于简单的情况,检查很容易,即 wordSet.contains(remain)

但是,复合词可以由 2 个以上的词组成,例如无论如何。因此,在从词干 what 中发现它是候选词后,剩下的就是 soever

您可以简单地尝试所有长度(soeversoevesoevsoeso, s),如果其中一个较短的单词是单词,则重复该过程。

关于java - 找到最长的连接单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48234777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com