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.
1个回答 分类:综合 2014-11-26

问题解答:

我来补答
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
 
 
展开全文阅读
剩余:2000
上一页:示意图也请画出
下一页:拜托详细解答