KMP算法求模式串在原串中出现的次数
来源:互联网 发布:淘宝卖家怎么催快递 编辑:程序博客网 时间:2024/06/07 09:23
#include <iostream>#include <cstring>#include <stdio.h>#include <stdlib.h>#include <iomanip>#include <algorithm>#include <set>#include <map>#include <stack>#include <queue>#include <deque>#include <cmath>using namespace std;#define INF 0x3f3f3f3f#define maxn 110000const double PI = acos(-1.0);typedef long long ll;int Next[maxn];char a[1000];void get_next(char a[]);int KMP(char a[], char b[]);int main(){ char b[maxn] ; char a[maxn]; while(cin >> a >> b) { int sum = KMP(a, b); cout << sum << endl; } return 0;}void get_next(char a[]){ int i = 0, j = -1; Next[0] = -1; while(a[i] != '\0') { if(j == -1 || a[i] == a[j]) { i++; j++; Next[i] = j; } else j = Next[j]; }}int KMP(char a[], char b[]){ get_next(b); int sum = 0; int lena = strlen(a); int lenb = strlen(b); int i = 0, j = 0; while(i < lena && j < lenb) { if(j == -1 || a[i] == b[j]) { ++i; ++j; //此处开始与KMP常规算法不同,以此为找到模式串的标志并尽心回溯 if(j == lenb) { sum++; j = Next[j]; } } else j = Next[j]; } return sum;}
阅读全文
0 0
- KMP算法求模式串在原串中出现的次数
- KMP求模式串在原串中出现的次数
- hiho-kmp 计算模式串在原串中出现的次数
- KMP算法之查找模式串在源串中出现的次数
- (串的模式匹配4.6.2)POJ 3461 Oulipo(KMP算法的应用——求一个单词在一行文本中的出现次数)
- [KMP求模式在主串出现次数]POJ 3461 Oulipo
- 杭电 2087 KMP算法的应用 求出现次数
- KMP:计算模式串出现的次数
- hdoj 3336 Count the string 【kmp求 所有前缀 在原串中出现的次数 总和】
- hdoj 1686 Oulipo 【求一个串在另一串的出现次数】【KMP】
- POJ 3461 Oulipo (KMP,求模版串在文本串中可覆盖出现的次数,constructive)
- (KMP 1.2)hdu 1686 Oulipo(计算模式串在文本串中出现的次数)
- POJ3461 KMP简单变形输出模式串在主串出现的次数
- hdoj 4552 怪盗基德的挑战书 【KMP 求所有前缀在原串种出现的次数之和】
- //////////编程实现:求模式串T在目标串S中出现的次数和每次
- 1686 hdu Oulipo(求模式串在文本串中出现的次数)
- HDU3461Oulipo求模式串在文本串中出现的次数
- HDU 3336 KMP 求所有前缀在母串中出现的次数
- bzoj 3993: [SDOI2015]星际战争
- solr进阶七:与jQuery结合的自动补全功能
- 中缀 前缀 后缀表达式 相互转换
- Java编程思想读书笔记——初始化与清理(二)
- Ajax总结
- KMP算法求模式串在原串中出现的次数
- linux下ssh服务器安装与登录
- 新的工作,新的开始
- 进程和线程区别
- a different object with the same identifier value was already associated with the session。
- nvm在window下的配置
- jquery实现网页换肤
- 文章标题
- java面向对象的封装、继承、多态案例