第51天。
今天的题目是Implement Trie (Prefix Tree):
Implement a trie with insert, search, and startsWith methods.
Note:
You may assume that all inputs are consist of lowercase letters a-z.
Tire也就是前缀树,也叫字典树。
它大概是是这样子的:
- 除了root节点以外,每个节点都有一个字符。
- 从根节点到**某个节点(可以不是叶子节点)**的一条路径表示一个字符串。
- 对于某个节点其孩子节点的字符不唯一
每个节点都可以唯一对应一个字符串,即使每个节点只存放一个字符,但是root
节点到这个节点的路径可以唯一确定一个字符串。
既然说它是前缀树,那肯定和前缀有关啦。两个节点所代表的字符串用公共前缀,那么root
节点到他们的路径肯定有公共路径。
因为python
中有一些好用的数据结构,比如说dict
,所以实现起来并不难。
贴一个dicuss
中的c++
解法吧,因为他这里限定了字符只是26个,所以写起来也挺方便的: