【day-12】KMP的next数组

来源:互联网 发布:lics算法 编辑:程序博客网 时间:2024/06/15 05:04

#include <iostream>#include <vector>using namespace std;vector<int> Next(string &partten){    vector<int> next(partten.size());    next[0]=-1;    int k=-1;    int i=0;    while(i<partten.size()){        if(k==-1 || partten[i]==partten[k]){            next[++i]=++k;        }else{            k=next[k];        }    }    return next;}/*-1 0 0 0 0 1 2 3 0 1 2 3 4*/int main(){    string partten("ABCDABCEABCDG");    auto res=Next(partten);    auto it=res.begin();    for(;it!=res.end();++it){        cout<<*it<<" ";    }    cout<<endl;    cout << "Hello world!" << endl;    return 0;}

0 0
原创粉丝点击