实验目的:
1.掌握串的模式匹配操作。
实验要求:
1.分别使用BF和KMP算法完成串的模式匹配。
实验过程:
1.设计完成next值的计算函数;
2.设计完成修正next值的函数;
3.KMP算法代码;
4.输入子串(abbc)和主串(abbabbcad)
5.输出子串在主串中开始的位置。
实验结果:
输入:子串:abbc 主串:abbabbcad
输出:4
实验分析:
1.普通next和修正next的区别;
2.列举调试运行过程中出现的错误并分析原因。
BF+KMP算法代码:
#include<iostream>
using namespace std;
long long sum1=0,sum2=0;
int l1,l2;
void BF(string s1,string s2,long long sum1)
{
int l1=s1.size(),l2=s2.size();
int pos=-1;
for(int i=0;i<l2;i++){
for(int j=0;j<l1;j++){
sum1++;
if(s2[i+j]==s1[j]){
if(j==l1-1){
pos=i+1;
cou