最长回文字符串
来源:互联网 发布:用苹果手机拍淘宝图片 编辑:程序博客网 时间:2024/05/22 03:18
输入一个字符串,找出其中的最长的回文字符串,输入的都是字母。
#include <iostream>#include <cstring>#include <cstdio>#include <cstdlib>using namespace std;const int MAX = 1000010;char s[MAX];char ss[MAX<<1];int dp[MAX<<1];int solve(int len){ int ans = 0; int right = -1; int id = -1; for(int i=0; i<len; i++) { int r = 1; if(right >= i) r = max(r, min(right-i+1, dp[2*id-i])); while((i-r+1>=0&&i+r-1<len)&&(ss[i-r+1]==ss[i+r-1])) r++; r--; if(i+r-1 > right) { right = i+r-1; id = i; } dp[i] = r; if(ans < r) ans = r; } return ans - 1;}int main(){ int cas = 1; while(scanf("%s", s) != EOF) { if(strcmp(s, "END") == 0) break; int len = strlen(s); int cnt = 0; for(int i=0; i<len; i++) { ss[cnt++] = '#'; ss[cnt++] = s[i]; } ss[cnt++] = '#'; printf("%d\n",solve(cnt)); } return 0;}
0 0
- 最长回文字符串
- 最长回文字符串
- 最长回文字符串
- 最长回文字符串
- 字符串最长回文串
- 最长回文字符串
- 最长回文字符串
- 最长回文字符串
- 最长的回文字符串
- 最长回文子字符串
- 求解最长回文字符串
- 最长回文字符串
- 最长回文字符串
- 最长回文字符串Manacher
- 最长回文字符串
- 最长回文字符串
- 最长回文字符串
- 最长回文子字符串
- error C1189以及warning MSB8012
- Makefile(六)
- uml总结之状态图、活动图
- 卷积神经滤波CNN(一)
- Web页面跳转的3种路径
- 最长回文字符串
- java web 监听器详解
- 19. Dubbo原理解析-通信层之暴露服务
- 字母易位词
- Java - 批量插入用法(jdbcTemplate)
- FZU 2150 Fire Game
- 如何提高一项能力
- Jquery如何解析JSON数据
- jvm参数设置