Trie树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。Trie的核心思想是空间换时间。利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。
Trie 的强大之处就在于它的时间复杂度。它的插入和查询时间复杂度...
分类:
其他好文 时间:
2015-01-14 21:28:41
阅读次数:
328
求最长回文串。把原串翻转后,加在原串后面,中间插入一个辨别字符。然后求SA,Height。然后枚举每个字母作为回文串中心,分长度为奇数和偶数去讨论:奇数求 suffix(i)和suffix(n-i+1)的最长公共前缀,偶数则求suffix(i)和suffix(n-i+2)(当然,i=1时不成立) 。...
分类:
其他好文 时间:
2014-12-16 22:30:39
阅读次数:
248
算法总结第二弹,上次总结了下kmp,这次就来拓展kmp吧。
拓展kmp算法是对KMP算法的扩展,它解决如下问题:
定义母串S,和字串T,设S的长度为n,T的长度为m,求T与S的每一个后缀的最长公共前缀,也就是说,设extend数组,extend[i]表示T与S[i,n-1]的最长公共前缀,要求出所有extend[i](0
注意到,如果有一个位置extend[i]=m,则表示T在S中出现,而且是在...
分类:
编程语言 时间:
2014-12-09 23:10:54
阅读次数:
338
2105: 增强型LCPTime Limit: 10 SecMemory Limit: 162 MBSubmit: 366Solved: 86[Submit][Status]Description Input Output对于每个Lcp(a,b)操作输出最长公共前缀Sample Input47a.....
分类:
其他好文 时间:
2014-11-28 14:24:07
阅读次数:
219
字典树,又称为字母数,前缀树等等,不仅可以存储字符,还可以存储数字等,
又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来节约存储空间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。
字典树与字典很相似,当你...
分类:
其他好文 时间:
2014-11-27 01:39:23
阅读次数:
202
trie,又称前缀树或字典树. 它利用字符串的公共前缀来节约存储空间.
定义
Trie树中每个单词都是通过character by character方法进行存储,相同前缀单词共享前缀节点.
可以看到,每条路径组成一个单词.上面这颗树存了to/tea/ted/ten/inn这些词.
性质
(1)根节点不包含字符,除根节点外的每个节点只包含一个字符。(2)从根节点到...
分类:
编程语言 时间:
2014-11-24 17:20:14
阅读次数:
219
题意:
某公司开发了一个编辑器,支持两条语音命令:1.重复最后一个单词,2.删除最后一个单词的最后一个字母。给你一系列的单词,问利用编辑器的功能最少需要输入多少个字母就可以将所有单词输入;要求第一个单词一定要第一个输入,其余单词不限顺序。
思路:
输入第一个单词后,我们可以怎么样选择能使得输入的字母数最少?当然我们需要选择和第一个单词有最长公共前缀的单词;这就是贪心的策略:每次都...
分类:
其他好文 时间:
2014-11-24 10:10:35
阅读次数:
159
1014: [JSOI2008]火星人prefixTime Limit:10 SecMemory Limit:162 MBSubmit:3154Solved:948[Submit][Status]Description火星人最近研究了一种操作:求一个字串两个后缀的公共前缀。比方说,有这样一个字符串:...
分类:
Web程序 时间:
2014-11-17 13:53:08
阅读次数:
328
Write a function to find the longest common prefix string amongst an array of strings.(每个字符串从0开始的公共部分即最长公共前缀)C++代码如下:#include#include#includeusing nam...
分类:
其他好文 时间:
2014-11-14 23:58:14
阅读次数:
463
给定串S和T,求S的每一个后缀和T的最长公共前缀。方法1:暴力算法,时间复杂度O(n^2);方法2:后缀数组,利用height的性质可以求出该问题,时间复杂度为O(n),但是预处理为O(nlogn)方法3:扩展KMP,充分利用已经匹配过的性质,降低匹配的时间,时间复杂度为O(n)学习资料:http:...
分类:
其他好文 时间:
2014-11-11 18:16:53
阅读次数:
248