POJ 2752
//KMP,對(duì)vector單個(gè)賦值不懂,只能用c語(yǔ)言形式拉
//大致題意:字符串s有多少個(gè)子串既是前綴又是后綴
#include <iostream>
#include <string>
#include <cstring>
#include <cstdlib>
using namespace std;
const int N = 400010;
int next[N] = {0},a[N] = {0};
void get_next(string s){int i,j;i=0;j=-1;next[0]=-1;while(i<s.length()){if(j==-1||s[i]==s[j]){++i;++j;next[i]=j;}elsej=next[j];}}
int main()
{int i,j,k,T;string s;while(cin>>s){get_next(s);k = s.length();j =0;while(k>0){a[j++] = next[k];k = next[k];}for(i=j-2;i>=0;i--)//a[j-1]等于0 cout<<a[i]<<" "; cout<<s.length()<<endl;memset(a,0,sizeof(a));memset(next,0,sizeof(next));s.clear();}// system("pause");return 0;
}
?
總結(jié)
- 上一篇: 导入已有工程相关问题解决实录
- 下一篇: 初看jQuery,比较dojo与jQue