字符串搜索
文章平均质量分 73
水纸谷幽
简单生活,兴趣是感染力最强的老师。
展开
-
由height数组构造lcp(i,j)
讨论一个字符串的所有后缀的最长公共前缀(不同后缀间前面相等部分)有两种情况:(1)相邻排名的后缀间的lcp(pos[i],pos[i+1]). (2)任意后缀间的lcp(pos[i],pos[j]).原创 2014-08-26 16:02:01 · 1004 阅读 · 0 评论 -
倍增算法实现后缀数组的构造
后缀:后缀是指从某个位置i开始到整个串末尾结束的一个特殊子串。字符串r的从第i个字符开始的后缀表示为Suffix(i),也就是Suffix(i)=r[i..len(r)]。(len(r)表示r的末尾结束)大小比较:关于字符串的大小比较,是指通常所说的“字典顺序”比较,也就是对于两个字符串u、v,令i从1开始顺次比较u[i]和v[i]: 若u[i]=v[i]则令i加1 若u[原创 2014-08-26 15:15:18 · 1006 阅读 · 0 评论 -
由pos及lcp对在线字符串w在短文A中进行查找
利用二分法求Lw.(1)直接利用已排列的pos数组进行求解.引入符号表示字符串u的长度为p的前缀,u ≤P v表示字符串u的长度为p的前缀小于v,引入字符串W=w0w1...wp-1(p令 Lw=min(k: W≤P Apos[k] or k=N) and Rw=max(k: Apos[k] ≤P W or k=-1) .则W和A的某个字串匹配,当且仅当i=pos[k]原创 2014-08-26 16:03:46 · 912 阅读 · 0 评论 -
由后缀pos数组构造height数组
height 数组:定义 height[i]=suffix(pos[i-1])和 suffix(pos[i])的最长公共前缀,也就是排名相邻的两个后缀的最长公共前缀。那么对于 j 和 k,不妨设rank[j]则有以下性质:suffix(i) 和 suffix(z) 的 最 长 公 共 前 缀(lcp) 为 height[rank[i]+1] , height[rank[i]+2], heigh原创 2014-08-26 15:41:02 · 1541 阅读 · 0 评论