题意:给你一个a串和一个b串,问b串是否是a串的子串,如果是返回b在a中最早出现的位置,否则输出-1
分析:应该是最简单的模板题了吧.....
代码如下:
==============================================================================================
#include#include const int MAXM = 1e4+7;const int MAXN = 1e6+7;int a[MAXN], b[MAXM], next_b[MAXM];void GetNext(int b[], int next[], int M){ int i=0, j=-1; next[0] = -1; while(i < M) { if(j==-1 || b[i]==b[j]) next[++i] = ++j; else j = next[j]; }}int KMP(int a[], int b[], int next[], int N, int M){ int i = 0, j = 0; while(i < N) { while(j==-1 || a[i] == b[j] && j