zoukankan      html  css  js  c++  java
  • 【KMP模板】简单写个KMP~

    本来easy的KMP

    却一直过不了洛谷的模板题。。。

    仔细一看原来在输出next数组时打的回车而不是空格。。。

    身败名裂。。。

    话说有个sunday貌似一般状况下比KMP快呢。。。去看看2333

    #include<cstdio>
    #include<iostream>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    
    char a[1000010],b[10010];
    int nextt[10010];
    
    int main()
    {
        scanf("%s%s",a+1,b+1);
        int la=strlen(a+1);
        int lb=strlen(b+1);
        int j=0;
        for(int i=2;i<=lb;i++)
        {
            while(b[j+1]!=b[i]&&j) j=nextt[j];
            j+=(b[j+1]==b[i]);
            nextt[i]=j;
        }
        
        j=0;
        for(int i=1;i<=la;i++){
            while(j&&a[i]!=b[j+1]) j=nextt[j];
            j+=(a[i]==b[j+1]);
            if(j==lb) printf("%d
    ",i-lb+1);    
        }
        for(int i=1;i<=lb;++i)
            printf("%d ",nextt[i]);
        return 0;
    }
  • 相关阅读:
    css
    js
    css3
    css
    深浅拷贝
    index-数据结构/算法
    es6知识点
    在vscode中配置sass savepath
    计算机基础
    element-ui使用后手记
  • 原文地址:https://www.cnblogs.com/rir1715/p/6797554.html
Copyright © 2011-2022 走看看