KMP

来源:互联网 发布:软件学校网上报名 编辑:程序博客网 时间:2024/06/07 04:10
/*        kmp         luogu p3375        by sbn        2017-12-24*/#include<iostream>#include<cstdio>#include<cstdlib>#include<string>#include<cstring>using namespace std;string s1,s2;int nt1[1000001],nt2[1000001];void calnt1(){  //s1的next计算     nt1[0]=-1;    int k=-1;    for (int i=1;i<s1.size();i++){        while (k>-1&&s1[k+1]!=s1[i])    k=nt1[k];        if (s1[k+1]==s1[i]) k++;        nt1[i]=k;    }}void calnt2(){  //s2的next计算     nt2[0]=-1;    int k=-1;    for (int i=1;i<s2.size();i++){        while (k>-1&&s2[k+1]!=s2[i])    k=nt2[k];        if (s2[k+1]==s2[i]) k++;        nt2[i]=k;    }}void KMP(){    calnt1();    calnt2();    int k=-1;    for (int i=0;i<s1.size();i++){        while (k>-1&&s2[k+1]!=s1[i])    k=nt2[k];        if (s2[k+1]==s1[i]) k++;        if (k==s2.size()-1){            cout<<i-s2.size()+2<<endl;            k=-1;            i=i-s2.size()+1;        }       }}int main(){    cin>>s1>>s2;    KMP();    for (int i=0;i<s2.size();i++)   cout<<nt2[i]+1<<" ";}
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 铁棍山药批发价格 怀山药和铁棍山药的区别 铁棍山药是什么 怀山堂铁棍山药粉价格 淮山和铁棍山药的区别 铁棍山药怎么炒好吃 铁棍山药烧排骨 山药和铁棍山药的区别 铁棍山药价格行情 铁棍山药的产地 铁棍山药多少钱一斤 坚持吃铁棍山药一年的效果 铁棍山药豆的功效与作用 吃铁棍山药有什么好处 河南焦作铁棍山药价格 焦作山药铁棍山药价格 吃铁棍山药对女人的好处 铁棍山药营养粉 铁棍山药煮多久能熟 铁棍山药的图片 铁棍山药怎么炒 铁棍山药的家常做法 铁棍山药炖汤 铁棍山药怎么做好吃 铁棍山药的食用方法 铁棍山药怎么做 铁棍山药的吃法与做法 铁棍山药粉的功效与作用 铁棍山药的功效 铁棍山药做法大全家常 铁棍山药的做法 铁杆山药怎么做好吃 铁杆山药价格 铁杆山药做法 铁山药的做法大全 铁杆山药的做法大全 铁杆山药的做法 铁山药 细山药的做法大全 小白嘴山药和铁棍山药区别 铁棚电动三轮车