给定一组单词和短语,给定一个键,返回:
- 所有以该键开头的单词
- 包含以 key 开头的单词的所有短语
例如:
wordbank = ["bang", "base", "bore", "band", "这是一个莫名其妙的问题];
key = "ba";
autocomplete(wordbank, key)
应该返回 ["bang", "base", "band", "This is a maffling Problem]
我使用了 Trie 来做到这一点,但只是想知道是否 this is a good solution?
要运行,只需在终端中输入java Test
。链接中的测试用例与此处的示例不同。
最佳答案
代码可以通过以下方式简化。将一组自动完成结果添加到尝试的每个节点。在尝试插入单词时,同时向每个访问的节点添加自动完成集。要执行自动完成,只需返回相应节点的自动完成集即可。
此解决方案向 insertWord
和 getWordsWithPrefix
添加一行,同时完全消除 buildWords
的需要。
关于java - 在 Java 中实现基本的自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40452718/