KMP算法,输三组主串S和模式串P,输出模式串的Next(j)函数值,及该P在S中的位置的定试编写一程序,实现KMP算法,输入三组主串S和模式串P,输出模式串的Next(j)函数值,以及该P在S中的位置的定位函数

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/18 13:01:06
KMP算法,输三组主串S和模式串P,输出模式串的Next(j)函数值,及该P在S中的位置的定试编写一程序,实现KMP算法,输入三组主串S和模式串P,输出模式串的Next(j)函数值,以及该P在S中的位

KMP算法,输三组主串S和模式串P,输出模式串的Next(j)函数值,及该P在S中的位置的定试编写一程序,实现KMP算法,输入三组主串S和模式串P,输出模式串的Next(j)函数值,以及该P在S中的位置的定位函数
KMP算法,输三组主串S和模式串P,输出模式串的Next(j)函数值,及该P在S中的位置的定
试编写一程序,实现KMP算法,输入三组主串S和模式串P,输出模式串的Next(j)函数值,以及该P在S中的位置的定位函数值,即序号值.其中S的长度为15~25,P的长度为5~8.

KMP算法,输三组主串S和模式串P,输出模式串的Next(j)函数值,及该P在S中的位置的定试编写一程序,实现KMP算法,输入三组主串S和模式串P,输出模式串的Next(j)函数值,以及该P在S中的位置的定位函数
KMP算法查找串S中含串P的个数count
  #include
  #include
  #include
  using namespace std;
  inline void NEXT(const string& T,vector& next)
  {
  //按模式串生成vector,next(T.size())
  next[0]=-1;
  for(int i=1;i=0 )
  j=next[j] ; //递推计算
  if(T[i]==T[j+1])next[i]=j+1;
  else next[i]=0; //
  }
  }
  inline string::size_typeCOUNT_KMP(const string& S,
  const string& T)
  {
  //利用模式串T的next函数求T在主串S中的个数count的KMP算法
  //其中T非空,
  vector next(T.size());
  NEXT(T,next);
  string::size_type index,count=0;
  for(index=0;index