51nod 1088 最长回文子串
来源:互联网 发布:二维数组去除重复 编辑:程序博客网 时间:2024/06/05 03:00
#include <bits/stdc++.h>using namespace std;const int MAXN=200100;char a[MAXN],s[MAXN];int f[MAXN],n,ans;void manacher(char *a){int i,r,p,m;s[0]='$';s[1]='#';for(i=1;i<=n;i++){s[i<<1]=a[i-1];s[i<<1|1]='#';}s[(n+1)<<1]='@';m=(n+1)<<1;r=p=0;f[1]=1;for(i=2;i<m;i++){if(r>i)f[i]=min(r-i,f[p*2-i]);elsef[i]=1;for(;s[i-f[i]]==s[i+f[i]];f[i]++);if(i+f[i]>r){r=i+f[i];p=i;}}ans=0;for(i=2;i<m;i++)ans=max(ans,f[i]-1);}int main(){while(scanf(" %s",a)!=EOF){n=strlen(a);manacher(a);printf("%d\n",ans);}}
0 0
- 51nod 1088 最长回文子串
- 51nod 1088 最长回文子串
- 51nod 1088 最长回文子串
- 51nod-【1088 最长回文子串】
- 51nod 1088 最长回文子串
- 【51nod】1088 最长回文子串
- 51Nod 1088 最长回文子串
- 51Nod-1088-最长回文子串
- 51nod 1088 最长回文子串
- 51Nod 1088 最长回文子串
- 51Nod-1088-最长回文子串
- 51nod--1088 最长回文子串(连续!)
- 51nod 最长回文子串 V2(Manacher算法)
- 51nod-【hihocoder #1032 : 最长回文子串】
- nod-1089-最长回文子串 V2
- 51Nod 1088 最长回文串
- 51nod oj 1088 1089 最长回文子串 【Manacher算法】
- 1088 最长回文子串
- 51NOD 1402 最大值 By Assassin
- VR,AR与MR区别,技术交流兴趣部落
- 缘
- 51nod 1087 1 10 100 1000
- 背包问题
- 51nod 1088 最长回文子串
- interrupt、interrupted 、isInterrupted 区别
- 51nod 1089 最长回文子串 V2(Manacher算法)
- UVa658 It's not a Bug, it's a Feature!
- 时间复杂度和空间复杂度
- 51nod 1090 3个数和为0
- hdu oj从1000-1001-1002
- JMM主内存与工作内存交互
- 常用开发工具的API文档大全