trie树入门

trie树分为普通的trie树和01trie树

两者可以实现成树,很大一部分原因是:只有26个字母和01两种状态,一个结点度数不会太大,而且字符串长度和位数不会很大,更容易存储

普通trie树维护了一堆字符串集合的前缀,insert和query复杂度都是树的深度,最深是字符串长度,因此字符串长度在不是很长的情况下可以用trie树存

01trie树维护了一堆数集合和位表示前缀,insert和query复杂度也是树的深度,最深才二三十(log)

当我们要看一个字符串集合内某个字符串的出现次数时可以用普通trie

当我们看一个数的集合内二进制表示满足某个条件的数的个数可以用01trie

trie树做题步骤:

普通trie树:

  1. 去确定好要维护哪个字符串集合(去哪些字符串里找满足条件的字符串)

  1. 造trie树

01trie树:

  1. 去确定好要维护哪个数字集合(去哪些数里找二进制满足某些条件的数)

  1. 造trie树

来看一些题:

Trie字符串统计

835. Trie字符串统计 - AcWing题库

trie树入门_第1张图片

trie树裸题,直接打板子即可