KMP模板
来源:互联网 发布:沸点网络电视官网 编辑:程序博客网 时间:2024/05/21 00:00
思路来自Matrix67:http://www.matrix67.com/blog/archives/115
void pre(string str){ int j=-1; next[0]=-1; for(int i=1;i<str.size();i++){ while(j>=0&&str[j+1]!=str[i]) j=next[j]; if(str[j+1]==str[i]) j++; next[i]=j; }}int kmp(string str1,string str2){ pre(str2); int ans=0; int j=-1; for(int i=0;i<str1.size();i++){ while(j>=0&&str2[j+1]!=str1[i]) j=next[j]; if(str2[j+1]==str1[i]) j++; if(j==str2.size()-1){//找到一次 ans++; j=next[j];//继续向后找 } } return ans;}
void get_next(){ int k=-1,j=0; next[0]=-1; while(j<pl) { if(k==-1||p[j]==p[k]) { j++;k++; next[j]=k; } else k=next[k]; }}int KMP(){ int i=0,j=0; get_next(); while(j<pl&&i<sl) { if(j==-1||s[i]==p[j]) { i++;j++; } else j=next[j]; if(j==pl) { sum++;j=next[j]; } } return sum;}
0 0
- KMP模板
- KMP 模板
- kmp模板
- kmp模板
- kmp模板
- KMP模板
- kmp模板
- kmp模板
- KMP 模板
- 【模板】KMP
- KMP模板
- KMP模板
- 【KMP 模板】
- KMP模板
- KMP 模板
- kmp模板
- KMP模板
- KMP 模板
- C++Primer 第7章笔记整理
- 使用日本人的库QRCode编解码二维码
- java反射
- 利用信鸽推送提示评论通知
- Android 基础之创建一个实用,适用范围广的万能Adapter
- KMP模板
- 【Leetcode】234 Palindrome Linked List
- Python命令行工具集——pycli
- sublime Text3 安装错误PyV8
- listview加载不同布局
- Objective-C编程之——发送消息Send Message
- ui-router & ngRoute 学习笔记
- 练习5-10 编写程序expr,以计算从命令行输入的逆波兰表达式的值,其中每个运算符或操作数用一个单独的参数表示
- 控制ListView快速滑动不加载图片