gpt4 book ai didi

java - 如何在 Java 中找到一个单词的 N 克?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:37:17 24 4
gpt4 key购买 nike

例如,如果输入是“name”,minGram 是 1,maxGramSize 是 2,输出将由 n、a、m、e、na、am、me 组成。如果 minGram=2, maxGram=4 inputWord=name, output = na,am,me,nam,ame,name。

函数签名可以是这样的:

public List<String> generateNGrams(String input, int minGramSize, int maxGramSize)

最初我尝试使用 for 循环来完成它,但我发现很难遵循索引。然后我尝试用笔和纸递归解决它,但我仍在努力解决它。有人可以帮我弄这个吗?

最佳答案

一个解决方案:

private static void addNgrams(final int size, final String input, 
final List<String> list)
{
final int maxStartIndex = input.length() - size;
for (int i = 0; i < maxStartIndex; i++)
list.add(input.stubString(i, i + size));
}

public List<String> generateNGrams(final String input, final int minSize,
final int maxSize)
{
final List<String> ret = new ArrayList<>();
for (int size = minSize; size <= maxSize; size++)
addNgrams(size, input, ret);
return ret;
}

注意:缺少基本的错误检查(例如,maxSize 大于 input 的大小;minSize 大于 maxSize;其他);留作练习。

关于java - 如何在 Java 中找到一个单词的 N 克?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22441276/

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