208.实现 Trie

https://leetcode-cn.com/problems/implement-trie-prefix-tree

题目描述

实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作。

示例:

Trie trie = new Trie();

trie.insert("apple");
trie.search("apple"); // 返回 true
trie.search("app"); // 返回 false
trie.startsWith("app"); // 返回 true
trie.insert("app");
trie.search("app"); // 返回 true
说明:

你可以假设所有的输入都是由小写字母 a-z 构成的。
保证所有输入均为非空字符串。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/implement-trie-prefix-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路

熟悉一下 Trie 的概念就可以了。

https://medium.com/basecs/trying-to-understand-tries-3ec6bede0014

复杂度分析

  • 时间复杂度:$O(L)$,L 是字符串长度, insert search startsWith 操作都是。

  • 空间复杂度:$O(M^{L})$,L 是字符串长度,M 是字符集中字符个数,如本题中 M 就是 26。

代码

TypeScript Code

JavaScript Code

输入输出

Nodejs

Last updated

Was this helpful?