hihocoder 1015KMP
来源:互联网 发布:极端编程 编辑:程序博客网 时间:2024/05/11 02:54
#include <iostream>#include <algorithm>#include <stdio.h>#include <math.h>#include <string.h>using namespace std;#define N 2000010char s[N],p[N];int next1[N];int kmp(char* s, char* p){ int num=0; int i = 0; int j = 0; int sLen = strlen(s); int pLen = strlen(p); while (i < sLen && j < pLen) { if (j == -1 || s[i] == p[j]) { i++; j++; } else { j = next1[j]; } if(j==pLen) { num++; j = next1[j]; } } return num;}///求部分匹配表void GetKMPNext(char* p, int next[]){ int pLen = strlen(p); next1[0] = -1; int k = -1; int j = 0; while (j < pLen) ///计算到0 - len { if (k == -1 || p[j] == p[k]) { ++j; ++k; if (p[j] != p[k]) next1[j] = k; else next1[j] = next1[k]; } else { k = next1[k]; } }}int main() { //freopen("input.txt","r",stdin); int T; scanf("%d",&T); while(T--){ scanf("%s %s",p,s); //p为模式串 GetKMPNext(p,next1); printf("%d\n",kmp(s,p)); } return 0;}
阅读全文
0 0
- hihoCoder - 1015 - KMP算法
- [HiHoCoder]#1015 : KMP算法
- hihoCoder#1015 KMP算法
- hihocoder#1015 : KMP算法
- hihocoder 1015 KMP
- hihoCoder 1015 : KMP算法
- hihoCoder #1015 : KMP算法
- kmp 学习 hihocoder #1015
- hihoCoder#1015 KMP算法
- hihocoder 1015 KMP
- hihocoder #1015 KMP算法
- hihoCoder 1015 KMP算法
- hihoCoder 1015 KMP算法
- hihocoder #1015 kmp算法
- hihoCoder 1015 kmp算法
- hihocoder 1015 KMP算法
- hihoCoder 1015 KMP算法
- hihocoder #1015 kmp
- 数据库的索引
- iPhone 8 支广告
- thinksns的部署
- 机器学习(一)- 数学基础之统计概率
- 学习笔记TF017:自然语言处理、RNN、LSTM
- hihocoder 1015KMP
- Android6.0之navigationView、TabLayout
- 一起Talk Android吧(第二十四回:Java多线程编程二)
- TCPIP、Http、Socket的区别
- Android6.0之行为分析
- Tcp IP
- splay(普通平衡树)
- linux bash shell的简单入门语法
- 抽象类和接口的区别以及使用场景