07-串应用-
题目描述
学习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>
using namespace std;
class Cstring
{
string str;
int size;
void getnext(string p,int next[]);
int KMPfind(string p,int pos,int next[]);
public:
Cstring();
~Cstring();
void setval(string sp);
int KMPfindsubstr(string p