zoukankan      html  css  js  c++  java
  • 最长回文 HDU

    #include<iostream>
    #include<algorithm>
    #include<cstring>
     using namespace std;
     const int maxn=110010;
     char t[maxn],s[maxn*3];
     int p[maxn*3],lens;
     void init()
     {
         memset(s,'',sizeof(s));
         int len=strlen(t);
         lens=0;
         s[lens++]='+';
         for(int i=0;i<len;i++)    s[lens++]='#',s[lens++]=t[i];
         s[lens]='#';
     }
     int Manacher()
     {
         int Maxlen=1,id=0,mx=0;
         memset(p,0,sizeof(p));
        for ( int i=1; i<lens; i++ ){
            p[i]= mx>i ? min( p[2*id-i],mx-i) : 1;
            while( s[i-p[i]] == s[i+p[i]] ) p[i]++;
            if( mx < i+p[i] ) mx=i+p[i], id=i;
            Maxlen=max( Maxlen,p[i]-1);
        }
        return Maxlen;
     }
     int main()
     {
         while(~scanf("%s",t)){
             init();
             printf("%d
    ",Manacher());
         }
         return 0;
     }
  • 相关阅读:
    PHP 之sha256 sha512封装
    PHP 之中文转为拼音
    Redis 之仿微博demo
    PHP操作Redis相关函数
    存储过程和变量
    视图
    查询
    约束
    基础一
    轮播图--JS手写
  • 原文地址:https://www.cnblogs.com/overrate-wsj/p/12275094.html
Copyright © 2011-2022 走看看