manacher算法求最长回文子串(hdu3068)

原创 2016年08月28日 20:46:43
<span style="font-size:18px;">//第一次学到这种算法,算法分析和代码实现参考了博客: http://blog.csdn.net/xingyeyongheng/article/details/9310555 很详细</span>
<span style="font-size:18px;">#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn=110005;
char str[maxn],s[maxn*2];
int p[maxn*2];

int main()
{
   int len,i,k,id,maxlen;
   while(scanf("%s",str)!=EOF)
   {
      len=strlen(str);
      id=maxlen=0;
      s[0]='$';
      s[1]='#';
      k=2;
      for(i=0;i<len;i++)
      {
         s[k++]=str[i];
         s[k++]='#';
      }
      for(i=2;i<=2*len;i++)
      {
         if(p[id]+id>i)p[i]=min(p[2*id-i],p[id]+id-i);
         else p[i]=1;
         while(s[i-p[i]]==s[i+p[i]])++p[i];
         if(id+p[id]<i+p[i])id=i;
         if(maxlen<p[i])maxlen=p[i];
      }
      printf("%d\n",maxlen-1);
   }
   return 0;
}
</span>

版权声明:本文为博主原创文章,未经博主允许不得转载。

hdu 3068 最长回文子串 Manacher算法

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3068 题意:求最长回文子串 解题方案:Manacher算法 (好博客 https://www.fe...
  • mr_zj_
  • mr_zj_
  • 2017年03月17日 14:39
  • 84

hdu 3068 最长回文子串(Manacher算法模板题)

1、http://acm.hdu.edu.cn/showproblem.php?pid=3068 超时错在用了好几次strlen(),改正方法int n=strlen();再次调用时用常量就可以不超...

hdu 3068最长回文子串(manacher算法)

#include #include #include using namespace std; #define N 110005 char str[N], str1[2*N]; int len; ...

HDU 3068 最长回文 Manacher算法O(n)回文子串算法

题意:找出字符串中最长的回文串,输出其长度。 思路:Manacher算法O(n)回文子串算法, http://blog.csdn.net/xingyeyongheng/article/details/...

hdu 3068 最长回文 【Manacher求最长回文子串,模板题】

欢迎关注__Xiong的博客: http://blog.csdn.net/acmore_xiong?viewmode=list 最长回文              ...

hdu 3068 最长回文(manacher&最长回文子串)

最长回文 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub...

HDU 3068 最长回文子串O(n)算法

最长回文 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi...

HDU3608 最长回文子串 【Manacher算法】

【题目】 多组数据(T 每次输入一个字符串,判断它的最长回文子串的长度 例如abababaabab的答案就是8(babaabab) 【解题思路】 Manacher算法模板题 【代码】 #...

hdu5371 最长回文子串变形(Manacher算法)

http://acm.hdu.edu.cn/showproblem.php?pid=5371 Problem Description Hotaru Ichijou recently i...

HDU3068-最长回文---O(n)时间求最长回文子串

最长回文 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:manacher算法求最长回文子串(hdu3068)
举报原因:
原因补充:

(最多只允许输入30个字)