在Java中实现基本的自动完成

时间:2016-11-06 18:06:51

标签: java autocomplete trie

给定一个单词和短语数组,给定一个键,返回:

  • 以密钥开头的所有单词
  • 包含以键开头的单词的所有短语

例如:

wordbank = ["bang", "base", "bore", "band", "This is a baffling problem];

key = "ba";

autocomplete(wordbank, key)应该返回["bang", "base", "band", "This is a baffling problem]

我使用Trie来做,但只想知道是否this is a good solution?

要运行,只需在终端中输入java Test即可。链接中的测试用例与此处的示例不同。

1 个答案:

答案 0 :(得分:1)

可以通过以下方式简化代码。将一组自动完成结果添加到try的每个节点。在try中插入单词时,同时将自动完成集添加到每个访问节点。要执行自动完成,只需返回相应节点的自动完成集。

此解决方案向insertWordgetWordsWithPrefix添加了一行,同时完全消除了对buildWords的需求。