什么是Trie
Trie字典树,查询每个条目的时间复杂度和字典一共有多少个条目无关!时间复杂度为O(w),w为查询单词的长度,每个节点有若干个指向下个节点的指针,考虑不同的语言,不同的情景。如下图,每个节点有26个指向下个节点的指针
Trie字典树的添加
1 | package trie; |
查询
1 | //查询单词word是否在Trie中 |
前缀查询
1 | //查询是否在Trie中有单词以prefix为前缀 |
实现Trie(前缀树 leecode)
实现一个 Trie (前缀树),包含 insert
, search
, 和 startsWith
这三个操作。
1 |
|
添加与搜索单词(leecode)
设计一个支持以下两种操作的数据结构:void addWord(word) bool search(word),search(word) 可以搜索文字或正则表达式字符串,字符串只包含字母 .
或 a-z
。 .
可以表示任何一个字母。
1 |
|