字符串相关算法_第1页
字符串相关算法_第2页
字符串相关算法_第3页
字符串相关算法_第4页
字符串相关算法_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、字符串相关算法 主讲:李跃主要内容nKMP算法n字符串HASHn最小表示法nTRIE树nAC自动机n有限状态自动机DFAn后缀数组什么是串n由字母、符号组成的线性表n与串有关的问题及算法在实际应用中非常广泛n例如 文本搜索与串有关的概念n长度n字符集n前缀n后缀n字典序模式匹配n主串(text)n模版串(pattern)n朴素算法nKMP算法nMaxtrix67 blog KMP算法详解nhttp:/ -1 意义:任何串的第一个字符的模式值规定为-1。 (2)nextj=k 意义:模式串T中下标为j的字符,如果j的前面k个字符与开头的k个字符相等,且Tj != Tk (1kj)。即T0T1T2

2、。Tk-1=Tj-kTj-k+1Tj-k+2Tj-1 且Tj != Tk.(1kj);KMP重点:next函数的意义n nexti=k 表示i的前有k个字符与0-(k-1)相同,如n s = “ a b c a b c a b c 0”n next= -1 0 0 0 1 2 3 4 5 6 例题n字串寻址n54/JudgeOnline/showproblem?problem_id=1139Hash是什么?n将某个对象对应到一个关键值,然后通过关键值归类,放入到一个表中(哈希表),今后可以根据关键值迅速查找nHash可以用来判重和统计数目字符串HashnHa

3、sh中最常用的是字符串Hashn将一个字符串对应到一个整型数值,插入到哈希表n对应方法有很多种,甚至可以根据问题的特殊性自己构造,常用的有Rabin-Karp,ELFHashRabin-Karpn如果字符串中可能出现的字符有k个,则可以将字符串对应到k进制数n例如,如果字符串只可能为小写字母组成,则acm就对应到0262+2*26+12nlog(263)/log(26)=13.40300137386187867719n当字符串长度不超过13的时候,用long long作关键值类型,加上字符串长度作为限制,每个字符串唯一对应关键值n当字符串长度超过13的时候,就要进一步验证LEFhash算法nE

4、LFhash: 黑书 P96 1.4.3nint ELFhash(char *key) n n unsigned long h=0; n while(*key) n n h=(h24; n h&=g; n n return h%MOD; n Hash冲突的处理n不同的字符串可能映射到同一个key值。n(1) 开放地址法。n(2)拉链法。最小表示法n2003年 冬令营 周源 论文TRIE树n又称字典树n可用于字典中单词的查找n优点:节省查找时间n缺点:字符集太大时 空间耗费大AC自动机n多模式匹配nAC自动机=Trie树+KMPnAC自动机算法详解 http:/ 以及一个文本 要求找出每个单词出现的次数及位置n计数问题n实现:n1.构建TRIE树n2.通过一次BFS连后向边n例题:hdu 2222nhttp:/ 许智磊:后缀数组n后缀:n后缀数组SA:nRank数组nHeight数组:n例题: POJ 2774练习nPOJ上的字符串题目:nkmp 2752 2406 1961 2185nHash & tire树 1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论