【KMP模板】简单写个KMP~
生活随笔
收集整理的這篇文章主要介紹了
【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\n",i-lb+1); }for(int i=1;i<=lb;++i)printf("%d ",nextt[i]);return 0; }?
轉載于:https://www.cnblogs.com/rir1715/p/6797554.html
總結
以上是生活随笔為你收集整理的【KMP模板】简单写个KMP~的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到大蟒蛇吃人预示着什么
- 下一篇: Fiddler抓包9-保存会话(save