Trie是否只适合用于字符串的完整查询和前缀查询

来源:10-4 Trie字典树的前缀查询

五羊司机

2019-07-11

老师您好,关于Trie有个问题挺好奇想请教一下,Trie似乎只适合处理字符串的完整查询或者前缀查询(或者似乎也可以实现一个后缀查询的版本?),但如果输入的是字符串的中间部分,似乎就超出了Trie的能力?
比如通讯录中存储的大量人名中有一个是"Jason",我想通过输入"aso"就找到"Jason"这个字符串,这类查询在目前通常是用什么数据结构来实现的呢?

写回答

1回答

liuyubobobo

2019-07-11

是的,超过了Trie的能力,所以,Trie又叫前缀树。


你说的应用是典型的模式匹配问题,应该使用诸如KMP一类的模式匹配算法。


另外,后缀树也可以解决匹配问题,有意思的是,后缀树的建立用到了前缀树,有兴趣可以在网上搜索一下“后缀树”:)


继续加油!:)

0
1
五羊司机
谢谢老师~
2019-07-11
共1条回复

玩转数据结构

动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…

6221 学习 · 1705 问题

查看课程