后缀自动机(sam)上的字符串匹配
====
我们把相对较短的模式串构造成sam。
对于P="abcabcacab", T[1..i]的后缀,使得它是sam的最长前缀长度:
T: b a b c b a b c a b c a a b c a b c a b c a c a b c
1 1 2 3 1 1 2 3 4 5 6 7 1 2 3 4 5 6 7 5 6 7 8 9 1...
分类:
其他好文 时间:
2014-07-09 09:38:32
阅读次数:
162
后缀自动机(SAM)
搜了网上,多介绍应用,[3]算是一个比严格的定义性描述,并给出了证明。但是这个证明我并未看懂,下面综合一些资料给一些个人的直观但不失严谨的理解。
给定一个串A的后缀自动机是一个有限状态自动机(DFA),它能够且仅能够接受A的后缀,并且我们要求它的状态数最少。
设n=|A|, 状态数:st=[n+1,2n-1], 边数:eg=[n,3n-4]。构造:空间复杂度:26*st...
分类:
其他好文 时间:
2014-07-02 08:50:12
阅读次数:
338
trie -- suffix tree -- suffix automa 有这么一些应用场景:
即时响应用户输入的AJAX搜索框时, 显示候选列表。
搜索引擎的关键字个数统计。
后缀树(Suffix Tree): 从根到叶子表示一个后缀。
仅仅从这一个简单的描述,我们可以概念上解决下面的几个问题:
P:查找字符串o是否在字符串S中
A:若o在S中,则o必然是S的某个后缀...
分类:
其他好文 时间:
2014-06-25 08:47:36
阅读次数:
165
基础练习 FJ的字符串
时间限制:1.0s 内存限制:512.0MB
问题描述
FJ在沙盘上写了这样一些字符串:
A1 = “A”
A2 = “ABA”
A3 = “ABACABA”
A4 = “ABACABADABACABA”
… …
你能找出其中的规律并写所有的数列AN吗?
输入格式
仅有一个数:N ...
分类:
其他好文 时间:
2014-05-26 05:23:32
阅读次数:
222
#include
#include
#define FALSE 0 //函数执行错误返回0
#define TRUE 1 //函数执行正确返回1
//串的堆分配存储表示
typedef struct
{
char *ch;
int length;
}String;
//对串的所有操作都可以通过以下五个基本函数实现
void StrInit(String *);//串的初始化...
分类:
其他好文 时间:
2014-05-09 01:25:02
阅读次数:
294
boost::algorithm简介2007-12-08
16:59boost::algorithm提供了很多字符串算法,包括: 大小写转换; 去除无效字符; 谓词; 查找; 删除/替换; 切割; 连接;
我们用写例子的方式来了解boost::algorithm能够为我们做些什么。boost::al...
分类:
其他好文 时间:
2014-05-08 14:30:18
阅读次数:
397