`
deepfuture
  • 浏览: 4341750 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
博客专栏
073ec2a9-85b7-3ebf-a3bb-c6361e6c6f64
SQLite源码剖析
浏览量:79521
1591c4b8-62f1-3d3e-9551-25c77465da96
WIN32汇编语言学习应用...
浏览量:68584
F5390db6-59dd-338f-ba18-4e93943ff06a
神奇的perl
浏览量:101739
Dac44363-8a80-3836-99aa-f7b7780fa6e2
lucene等搜索引擎解析...
浏览量:281727
Ec49a563-4109-3c69-9c83-8f6d068ba113
深入lucene3.5源码...
浏览量:14658
9b99bfc2-19c2-3346-9100-7f8879c731ce
VB.NET并行与分布式编...
浏览量:65863
B1db2af3-06b3-35bb-ac08-59ff2d1324b4
silverlight 5...
浏览量:31408
4a56b548-ab3d-35af-a984-e0781d142c23
算法下午茶系列
浏览量:45325
社区版块
存档分类
最新评论

精确多模式匹配问题-关键词树、后缀树

阅读更多

一、多模式匹配问题

给定一组模式和一个文本,在文本中查找任一模式的全部出现信息。

输入:k个模式的集合p1,p2,...,pk,以及文本t=t1...tm

输出:所有位置i(1<=i<=m)的信息,使得与模式pj(1<=j<=k)相同的t的子字符串从位置i开始

二、使用关键词树

含有模式p1,p2,....,pk的集合的关键词树是一个根部标记的树,其满足如下条件:

1)树的每条边都被字母表的一个字母标记。

2)从同一顶点延伸出的任意2条边都有不同的标记。

3)模式集合中的每个模式pi(1<=i<=k)都是沿着某条路径从根到叶的顺序进行拼写的。

三、使用后缀树

文本t=t1...tm的后缀树是一个根部标记的且含有m片叶子的树

1)每条边由文本中的一个子字符串标记。

2)每个内部顶点(根节点除外)至少含有2个孩子。

3)从同一顶点出发的任意2条边起始于不同的字母。

4)文本t的每个后缀是依根部到某片叶子的路径拼写的。

将模式p穿过后缀树的线串定义为p沿着T中唯一路径的字符的匹配。如果这个匹配过程终止于P的所有字符都匹配上了,则称该字符串为完全线串;如果匹配半途终止,则称其为不完全线串。如果一个模式的线串是完全的,它会终止于T中的某个顶点或边。

算法:

SUFFIXTREEPATTERNMATCHING(p,t)

构建要匹配的文本t的后缀树

模式P在后缀树中的线串

if 线品是完全的

output 每个p匹配叶子在树的位置

else

output模式并未在文本中出现

分享到:
评论
1 楼 shimo 2010-07-23  
楼主想说明什么问题?

相关推荐

Global site tag (gtag.js) - Google Analytics