Palindrome - POJ 3974 (最长回文子串,Manacher模板)
2015-08-22 09:30
549 查看
题意:就是求一个串的最长回文子串....输出长度。
直接上代码吧,没什么好分析的了。
代码如下:
==============================================================================================================================
直接上代码吧,没什么好分析的了。
代码如下:
==============================================================================================================================
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; const int MAXN = 2e6+7; const int oo = 1e9+37; char s[MAXN]; int p[MAXN]; int Manacher(int len) { int id=0, Max=0; for(int i=2; i<len; i++) { p[i] = 1; if(p[id]+id > i) p[i] = min(p[id*2-i], p[id]+id-i); while(s[i+p[i]] == s[i-p[i]]) p[i]++; if(p[id]+id < p[i]+i) id = i; Max = max(Max, p[i]-1); } return Max; } int main() { int t = 1; while(scanf("%s", s), strcmp(s, "END")) { int N = strlen(s); for(int i=N; i>=0; i--) { s[i+i+2] = s[i]; s[i+i+1] = '#'; } s[0] = '$'; printf("Case %d: %d\n", t++, Manacher(N+N+1)); } return 0; }
相关文章推荐
- Spring EL Operators example
- 全国省市数据库
- C++中delete和delete[]的区别
- 浅述IOS用到的BOOL类型
- Timer控件使用(System.Timers.Timer)
- JUnit4中的测试套件
- JAVA代理模式
- hdu-5384Danganronpa+多校训练+AC自动机
- 快速排序
- 用JUnit4进行参数化测试
- soapui的安装
- 优秀项目经理应备技能04-项目管理的原则
- 不要上传销的当
- PostgreSQL Replication之第八章 与pgbouncer一起工作(4)
- log4j
- web项目中的各种路径的获取
- C++ 读取键盘输入(cin/cin.getline()/cin.get()/cin.clear())
- C和C++结构体的初始化和赋值
- 为自己的网站或者是项目添加追加日志功能
- 打开远程桌面连接的快捷方式