最长回文
来源:互联网 发布:世界网络银行商城手机 编辑:程序博客网 时间:2024/06/05 04:42
#include <iostream>#include <cstdio>#include <cmath>#include <queue>#include <stack>#include <cstring>#include <utility>#define ll long long #define INF 0x3f3f3f3fusing namespace std;const int MAX=1000000+10;char s[MAX*2];int dp[MAX*2];int maxlen,k,cas=0; //k用来记录已计算过的最长回文串中心位置int main(){ while(scanf("%s",s)!=EOF) { if(!strcmp(s,"END")) break; cas++; int len=strlen(s); maxlen=0,k=0; for(int i=len;i>=0;i--) //添加"#" { s[i+i+2]=s[i]; s[i+i+1]='#'; } //printf("%s\n",s); for(int i=2;i<2*len+1;i++) { if(dp[k]+k>i) dp[i]=min(dp[2*k-i],dp[k]+k-i); else dp[i]=1; while(s[i-dp[i]]==s[i+dp[i]]) dp[i]++; if(dp[k]+k<dp[i]+i) k=i; if(maxlen<dp[i]) maxlen=dp[i]; } printf("Case %d: %d\n",cas,maxlen-1); } return 0;}
0 0
- 最长回文
- 最长回文
- 最长回文
- 最长回文
- 最长回文
- 最长回文
- 最长回文
- 最长回文
- 最长回文
- 最长回文
- 最长回文
- 最长回文
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文长度
- 最长回文子串
- 最长回文子串
- memmove 和 memcpy的区别
- Hadoop相关日常操作
- 两次调用encodeURI来解决乱码问题
- MySQL 删除数据失败问题
- 内存映射文件
- 最长回文
- 使用EmguCv播放指定视频
- 【Material Design视觉设计语言】UI组件设计(十四):Tabs
- 语法错误,字符1,代码0 行1361错误
- zzuli OJ 1051: 平方根的和
- java IO流api使用详解
- javascript操作表单
- Android 问题:Attribute "xxx" has already been defined
- ie 10中flash动画只有声音没有画面解决办法