HDU
来源:互联网 发布:杭州擎洲软件 编辑:程序博客网 时间:2024/06/07 05:11
给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度.
回文就是正反读都是一样的字符串,如aba, abba等
回文就是正反读都是一样的字符串,如aba, abba等
两组case之间由空行隔开(该空行不用处理)
字符串长度len <= 110000
aaaaabab
43
思路:套了manacher的模板, 感觉比KMP简单一些。
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int mx = 110000 + 10;char s1[mx], str[2 * mx];int len[2 * mx];int manacher(){ str[0] = '@'; int n = strlen(s1), cnt =0; for(int i = 0; i < n; i++){ str[++cnt] = '#'; str[++cnt] = s1[i]; } str[++cnt] = '#'; str[++cnt] = 0; int rmx = 0, mid = 0, ans = 1; for(int i = 1; i < cnt; i++){ if(i <rmx) len[i] = min(rmx - i, len[2 * mid - i]); else len[i] = 1; while(str[i + len[i]] == str[i - len[i]]) len[i]++; if(i + len[i] > rmx){ rmx = i + len[i]; mid = i; } ans = max(len[i], ans); } return ans - 1;}int main(){ while(scanf("%s", s1) != EOF){ printf("%d\n", manacher()); }return 0;}
阅读全文
0 0
- hdu
- hdu
- HDU
- hdu ()
- hdu
- hdu
- HDU
- HDU
- hdu
- hdu
- HDU
- Hdu
- hdu
- hdu-
- hdu
- hdu
- hdu
- HDU
- 集合List和ArrayList等实现类的底层原理分析
- jquery获取标签名称
- SQL注入
- linux 安装 memcached
- Netty(三)文件上传下载、心跳检测
- HDU
- Ubuntu Kylin 16.04安装后要做的一些事情
- 51nod 1276 岛屿的数量 神奇做法
- [Leetcode]Dynamic Programming
- jquery中hasClass()作用
- oop复习
- ajax上传文件
- python调用bitly api出错
- java dbutil 1.1.5(1.1.4) 版本更新