在 Java 中实施基本自动完成
Implement basic autocomplete in Java
给定一个单词和短语数组,给定一个键,return :
- 以键开头的所有单词
- 包含以关键字开头的单词的所有短语
例如:
wordbank = ["bang", "base", "bore", "band", "This is a baffling problem];
key = "ba";
autocomplete(wordbank, key)
应该 return ["bang", "base", "band", "This is a baffling problem]
我用了一个 Trie 来做,但只是想知道是否 this is a good solution?
到运行,只要在终端输入java Test
即可。 link中的测试用例与这里的例子不一样。
代码可以通过以下方式简化。将一组自动完成结果添加到 try 的每个节点。在尝试插入单词时,同时将自动完成集添加到每个已访问的节点。要执行自动完成,只需 return 相应节点的自动完成集。
此解决方案向 insertWord
和 getWordsWithPrefix
添加了一行,同时完全删除了 buildWords
.
的需要
给定一个单词和短语数组,给定一个键,return :
- 以键开头的所有单词
- 包含以关键字开头的单词的所有短语
例如:
wordbank = ["bang", "base", "bore", "band", "This is a baffling problem];
key = "ba";
autocomplete(wordbank, key)
应该 return ["bang", "base", "band", "This is a baffling problem]
我用了一个 Trie 来做,但只是想知道是否 this is a good solution?
到运行,只要在终端输入java Test
即可。 link中的测试用例与这里的例子不一样。
代码可以通过以下方式简化。将一组自动完成结果添加到 try 的每个节点。在尝试插入单词时,同时将自动完成集添加到每个已访问的节点。要执行自动完成,只需 return 相应节点的自动完成集。
此解决方案向 insertWord
和 getWordsWithPrefix
添加了一行,同时完全删除了 buildWords
.