POJ 2752 同一个串的前后串
生活随笔
收集整理的這篇文章主要介紹了
POJ 2752 同一个串的前后串
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題解東北賽回來再補
#include<stdio.h>
#include<string.h>int next[500000];
int ans[500000];
char str[500000];void get_next(int m)
{int j ,k;j = 0 ,k = -1;next[0] = -1;while(j < m){if(k == -1 || str[k] == str[j])next[++j] = ++k;else k = next[k];}
}int main ()
{while(~scanf("%s" ,str)){int m = strlen(str);get_next(m);int an = 0;ans[++an] = m;while(next[ans[an]]){int tmp = next[ans[an]];ans[++an] = tmp;}for(int i = an ;i >= 1 ;i --)if(i == an) printf("%d" ,ans[i]);else printf(" %d" ,ans[i]);printf("\n");}return 0;
}
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
總結
以上是生活随笔為你收集整理的POJ 2752 同一个串的前后串的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: POJ2406 KMP前缀周期
- 下一篇: POJ 3461 KMP