问题 A: DS串应用–KMP算法
时间限制: 1 Sec 内存限制: 128 MB
题目描述
学习KMP算法,给出主串和模式串,求模式串在主串的位置
算法框架如下,仅供参考
输入
第一个输入t,表示有t个实例
第二行输入第1个实例的主串,第三行输入第1个实例的模式串
以此类推
输出
第一行输出第1个实例的模式串的next值
第二行输出第1个实例的匹配位置,位置从1开始计算,如果匹配成功输出位置,匹配失败输出0
以此类推
样例输入
3
qwertyuiop
tyu
aabbccdd
ccc
aaaabababac
abac
样例输出
-1 0 0
5
-1 0 1
0
-1 0 0 1
8
#include<iostream>
#include<string>
#include<math.h>
using namespace std;
class Mystring
{
public:
Mystring();
~Mystring();
void Setval(string sp);
int KMPFindsubstr(string p, int pos);
private:
string mainstr;
int size;
void GetNext(string p, int next[]);
int KMPFind(string p, int pos, int next