六章字符串处理算法.pptVIP

  • 7
  • 0
  • 约5.09千字
  • 约 41页
  • 2017-03-25 发布于上海
  • 举报
六章字符串处理算法

6.1 问题介绍 问题提出:字符串精确匹配(Exact String Matching)问题可以描述如下:给定一个长字符串T和一个短字符串P,其中它们的长度分别是|T|=m, |P|=n,利用最理想的时间和空间找出全部的T中与P完全匹配的子串。 习惯的表示方法:字符串T/P中的第i个字符用T(i)来表示。 6.2 Z-box算法 [定义]Zi(S)表示在字符串S中从第i位起与S的前缀匹配的最长的字符串的长度。(数值) 注:如果S在上下文中很明显,Zi(S)可以用Zi来表示。 例:S=a a b c a a b x a a z 那么 1 2 3 4 5 6 7 8 Z5(S)=3; Z6=1;Z7= Z8=0 Z-box:其中每个与前缀匹配的子串就叫一个Z-box。对于任意数字i,如果S(i)属于某一个Z-box,则定义Li表示该Z-box的最左端的位置,Ri表示该Z-box的最右端的位置。 例:在上例中L6=5 R6=7 性质:if ij,then Ri=Rj [任务] 在线性时间内(O|S|)计算S的所有Zi [思想] Z2正常计算,然后归纳计算Zk,可以减少比较的次数 [思想]令S=P$T,其中$是特殊字符,在S和T中都不存在。利用Z算法计算Zi(S)。 [方案]对于任意j,如果Zn+1+j(S)=n,则P出现在T(j)处。 [加强]

文档评论(0)

1亿VIP精品文档

相关文档