如果发现广告等破坏行为,请尽量将条目恢复到较早的版本而不是把相应内容直接删除,谢谢合作。

URAL/1354

来自"NOCOW"

跳转到: 导航, 搜索

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
个人工具