KMP模板
2016-05-14 17:11
344 查看
kmp用来快速求一个字符串的给定字串的数量。可以说是pascal的pos(),十分高效
详细解释点这里
求next
求KMP
详细解释点这里
求next
for i:=2 to m do begin while (j>0)and(s[i]<>s[j+1]) do j:=next[j]; if s[i]=s[j+1] then inc(j); next[i]:=j; end;
求KMP
function kmp(s1,s2:ansistring):longint; var i,j,k,n,ans:longint; begin j:=0;n:=length(s1);ans:=0; for i:=1 to n do begin while (j>0)and(s1[i]<>s2[j+1]) do begin j:=next[j];end; if s1[i]=s2[j+1] then inc(j); if j=m then begin inc(ans); j:=next[j]; end; end; exit(ans); end;
相关文章推荐
- 学习小笔记
- 亚马逊员工教你打造DIY版Echo
- 缓存的 Effect
- 最快最简单的排序——桶排序
- jdk tomcat 安装
- Android ViewPager被嵌套在ScrollView中不显示的问题的解决方案
- jquery 对 <div>,<span>, <a>,<button>, <radio> 的 赋值与取值
- Tex中的引号
- Android 高清加载长图或大图方案
- Linux基本命令(开发常用的、电脑常用的)
- Android通过Http连接MySQL 实现登陆/注册(数据库+服务器+客户端)
- 关于list、set、map的几点总结
- 74. 第一个错误的代码版本
- 2016 百度之星 资格赛
- android NDK方式调用Jar包
- Java:String、StringBuffer和StringBuilder的区别
- Android高级图片滚动控件,编写3D版的图片轮播器
- C# 遍历指定目录下的所有文件及文件夹
- 【bzoj4542】[Hnoi2016]大数
- RSA加密解密及RSA签名和验证及证书