XVII - The Stars. 愿|

旅玖旅玖

园龄:4年1个月粉丝:1关注:1

KMP算法板子

复制代码
int next[100];
void getnext()
{
    string a//(查找的串)
    next[0]=-1;
    int j=0,k=-1;
    for(j=0;j<a.size();j++)
    {
        if(k==-1||a[j]==a[k])
        {
            next[++j]=++k;
        }
        else
        {
            k=next[k];
        }
    }
}
复制代码

得到所用的next数组

复制代码
int kmp(string s)//s 被查找的串
{
    int j=0;
    for(int i=0;i<s.size();i++)
    {
      j=0;
while(i<s.size()&&j!=-1&&j<a.size()) { if(a[i]==a[j]) j++; else j=next[j]; if(j==a.size()) return i-a.size(); } } }
复制代码

 

posted @   旅玖旅玖  阅读(41)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起