poj-3461 kmp字符串匹配问题
来源:互联网 发布:java 进阶书籍 编辑:程序博客网 时间:2024/06/06 17:19
#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;char w[10001],t[1000001];int next[10001];int sum;void getNext(char* p, int next[]) { int pLen = strlen(p); next[0] = -1; int k = -1; int j = 0; while (j < pLen) { //p[k]表示前缀,p[j]表示后缀 if (k == -1 || p[j] == p[k]) { ++j; ++k; if (p[j] != p[k]) next[j] = k; else next[j] = next[k]; } else { k = next[k]; } } } void kmp(char T[],char P[],int next[]){ int n=strlen(T),m=strlen(P); int i,j; getNext(P,next); i=j=0; while(i<n){ while(j!=-1 && T[i]!=P[j])j=next[j]; i++;j++; if(j>=m){ sum++; j=next[j]; } }}int main(){ int T; scanf("%d",&T); while(T--){ sum=0; memset(next,0,sizeof(next)); scanf("%s%s",w,t); kmp(t,w,next); printf("%d\n",sum); } return 0;}/*3BAPCBAPCAZAAZAZAZAVERDIAVERDXIVYERDIAN 130*/
0 0
- poj-3461 kmp字符串匹配问题
- poj 3461 Oulipo(KMP 字符串匹配算法)
- POJ 3461 Oulipo(KMP字符串匹配)
- poj 3461(kmp字符串匹配模板)
- POJ 3461 : Qualification - 字符串匹配,KMP算法
- poj 3461 Oulipo kmp字符串匹配
- poj 3461 Oulipo 字符串匹配 KMP算法
- KMP 字符串匹配 POJ 3461 Oulipo
- poj 3461 字符串单串匹配--KMP或者字符串HASH
- 字符串匹配问题:KMP算法
- 字符串匹配问题-KMP总结
- 字符串匹配之KMP算法(POJ 3461 Oulipo)
- poj 1226 (字符串匹配,用KMP)
- POJ-1266/KMP算法/字符串匹配
- poj 3080 Blue Jeans kmp 字符串匹配
- poj-3461 kmp重叠匹配
- 模式匹配KMP POJ 3461
- KMP算法解决字符串匹配问题
- POJ3624背包问题
- MySQL备份及恢复预研文档
- 解决在root里添加用户后登录后出现密码错误的问题
- Ubuntu16.04 下安装 Pycharm
- linux工具
- poj-3461 kmp字符串匹配问题
- CoreJava 笔试题摘抄(二) 基础篇
- 你真明白 Python 装饰器么?
- 《C和指针》——宏中容易出现的错误
- Adb shell 关于进程的常用操作命令
- WEB项目总结(一) 支付宝接口接入详解
- Unity 导出 Gradle 工程(Android Studio)
- 队列的基本操作【严蔚敏】
- 百度地图动态加载数据库中的信息