如果发现广告等破坏行为,请尽量将条目恢复到较早的版本而不是把相应内容直接删除,谢谢合作。
URAL/1354
来自"NOCOW"
< URAL
maigo大牛的方法,貌似是kmp,有点晕呢。。。
#include <cstdio> #include <cstdlib> #include <cstring> int i,j,l,next[10010]; char s[10010]; int main() { scanf("%s",s+1); printf("%s",s+1); l=strlen(s+1); next[l]=l+1; i=l,j=l+1; while (i > 1) if ((j > l) || (s[i] == s[j])) { --i,--j; if (s[i] == s[j]) next[i]=next[j]; else next[i]=j; } else j=next[j]; i=2,j=l; while (i <= l) if ((j > l) || (s[i] == s[j])) ++i,--j; else j=next[j]; for (;j;--j) printf("%c",s[j]); printf("\n"); return 0; } //by zzy