字符串匹配
来源:互联网 发布:手机码字软件 编辑:程序博客网 时间:2024/06/02 17:34
字符串匹配
参考资料:算法导论
字符串匹配问题定义
假设文本是一个长度为 n 的数组 T[ 1.. n ],模式是一个长度为 m <= n 的数组 P[ 1 .. m] 。进一步假设 P 和 T 都是属于有限字母表中的字符。
如果 0 <= s <= n-m ,并且 T[ s+ 1 .. s+m] = P [ 1.. m ] ( 即对 1 <= j <= m ,有 T[s + j] = P[ j ] ),则说该模式P 在文本 T 中出现且位移为 s。
字符串匹配算法比较
注:
Rabin-Karp在最坏情况下的运行时间为 O( (n-m+1) m ) , 虽然这一时间并不比朴素算法好,但在平均情况和实际情况下,该算法的效果要好得多。这种算法可以很好的推广到解决其他的模式匹配问题中去;
KMP算法设计很巧妙,预处理的时间减少到 O ( m ) 。
记号、术语、引理
1 ∑* 表示用字母表∑中的字符形成的所有有限长度的字符串的集合。
2 字符串 x 的长度用 | x | 表示。两个字符串 x 和 y 的连接表示为 xy ,其长度为 | x | + | y | ,由 x 的字符接 y 的字符组成。
3 如果对于某个字符串 y ∈∑* ,有 x = wy,就说字符串 w 是字符串 x 的前缀,表示为 w 【 x ,| w | <= | x |。类似的,如果对某一个字符串 y∈∑*,有 x = yw,就说字符串 w 是字符串 x 的后缀,表示为 w 】x 。
重叠后缀引理
假设 x ,y 和 z 是满足 x 】z 和 y 】z 的三个字符串。如果 | x | <= | y |,则x 】y ;如果 | x | >= | y |,则 y 】 x;如果| x | = | y | ,则 x = y。
- 字符串匹配
- 字符串匹配
- 字符串匹配
- 字符串匹配
- 字符串匹配
- 字符串匹配
- 字符串匹配...
- 字符串匹配
- 字符串匹配
- 字符串匹配
- 字符串匹配
- 字符串匹配
- 字符串匹配
- 字符串匹配
- 字符串匹配
- 字符串匹配
- 字符串匹配
- 字符串匹配
- Heroku 部署时 time out 错误,对GFW无力吐槽!!!
- MySQL字段类型详解
- C++内存分配秘籍------new, malloc, GlobalAlloc详解
- 使用C#对MySQL数据库执行存在中文的SQL语句,不返回值的问题
- Chrome可以从其它浏览器上拖拽图片
- 字符串匹配
- sql 行转列的问题
- Sharepoint 2013-A feature with ID has already been installed in this farm
- newlisp 监控redmine
- CString常用方法简介
- FreeMarker的常用指令2
- CreateIoCompletionPort和完成端口
- [转] 好书大全——点击直接看,无需下载
- 【技术类】不得不看的Landsat 8常用的波段组合形式