markdown 在线制作ppt json校验和格式化工具

POJ 2725

 1 #include <iostream>
 2 #include <string>
 3 #include <algorithm>
 4 #define MAXN 400005
 5 using namespace std;
 6 
 7 char _m[MAXN];
 8 int next[MAXN];
 9 void give_next(int len);
10 int ans_len[MAXN];
11 int ans_len_index;
12 int ans[MAXN];
13 bool take_judge(int b,int len);
14 int main()
15 {
16     //freopen("acm.acm","r",stdin);
17     string s;
18     int i;
19     int j;
20     int len;
21     int index;
22     int cur;
23     //int ans;
24     while(getline(cin,s))
25     {
26         if(s.length() == 0)
27         {
28             break;
29         }
30         index = 0;
31         //cout<<s<<endl;
32         //ans = 0;
33         //cout<<s<<endl;
34         for(i = 0; i < s.length(); ++ i)
35         {
36             _m[i] = s[i];
37         }
38         memset(next,-1,sizeof(next));
39         give_next(s.length());
40 
41         i = s.length();
42         //cout<<i<<" ";
43         ans[index ++] = i;
44         for(; next[i] != 0; i = next[i])
45         {
46             //cout<<next[i]<<" ";
47             ans[index++] = next[i];
48         }
49         for(i = index-1; i >= 1; -- i)
50         {
51             cout<<ans[i]<<" ";
52         }
53         cout<<ans[i]<<endl;
54         //cout<<endl;
55       //  cout<<endl;
56     }
57     return 0;
58 }
59 
60 bool take_judge(int b,int len)
61 {
62     int j = 0;
63     int i;
64     for(i = b; i < len; ++ i,++ j)
65     {
66         if(_m[i] != _m[j])
67         {
68             break;
69         }
70     }
71     if(i == len)
72     {
73         return true;
74     }
75     return false;
76 }
77 
78 void give_next(int len)  //此为求next 数组的方法。
79 {
80     int i;
81     int j;
82     i = 0;
83     j = -1;
84     next[0] = -1;
85     while(i < len)
86     {
87         if(j == -1 || _m[i] == _m[j])
88         {
89             i ++;
90             j ++;
91             next[i] = j;
92         }
93         else
94             j = next[j];
95     }
96 }

 

posted @ 2015-06-11 11:52  GavinHacker  阅读(175)  评论(0编辑  收藏  举报
markdown 在线制作ppt json校验和格式化工具