【字符串】

Cmp:Trie,map,hash

Trie:

复杂度:为字符串串长,可以当做是线性的
用途:一般是先存储一些字符串(“词典”),再给你一些询问,每次询问一个字符串,查询它是否在词典中(或是其前缀是否在词典中)

map

复杂度:log(字符串个数)
用途:建立字符串到整数的映射,从而实现查找,统计个数等操作,(但它不能像Trie那样自然地支持前缀的查询)

hash

(自我感觉是跑得更快,但不太准确的map)
复杂度:插入复杂度是字符串串长,但多次询问复杂度是O(1)
用途:经过O(字符串串长)的预处理后,可以方便地查询一个子串的hash值,从而进行匹配,统计等操作

上一篇:线段树和Trie


下一篇:【算法设计与分析】第九章 字符串算法