POJ 2752

简介: //KMP,对vector单个赋值不懂,只能用c语言形式拉 //大致题意:字符串s有多少个子串既是前缀又是后缀 #include #include #include #include using namespace std; const int N = 400010; ...
//KMP,对vector单个赋值不懂,只能用c语言形式拉 
//大致题意:字符串s有多少个子串既是前缀又是后缀 
#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;
         }
         else
             j=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;
}
        
        
        

 

目录
相关文章
|
7月前
|
算法 数据建模
Poj 3169(差分约束系统)
Poj 3169(差分约束系统)
35 0
|
人工智能
POJ 3104 Drying
POJ 3104 Drying
F-POJ-3414 Pots
POJ-3414 Time Limit:1000 ms Memory Limit:65536 K Description You are given two po...
1004 0
POJ 1012 Joseph
Joseph Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 53862   Accepted: 20551 Description The Joseph's problem is notoriously known.
843 0
poj 1455
Description n participants of > sit around the table. Each minute one pair of neighbors can change their places.
621 0
|
算法 数据建模 机器学习/深度学习
|
人工智能 BI
poj-3185-开关问题
描述   牛一行20他们喝的水碗。碗可以那么(面向正确的为清凉水)或颠倒的(一个位置而没有水)。他们希望所有20个水碗那么,因此用宽鼻子翻碗。   嘴太宽,他们不仅翻转一碗还碗的碗两侧(总共三个或三个——在两端的情况下碗——两碗)。
815 0
|
机器学习/深度学习