时间复杂度为O(n),参考:http://bbs.dlut.edu.cn/bbstcon.php?board=Competition&gid=23474

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define maxn 2001000
using namespace std;
char s[maxn],st[maxn];
int p[maxn];
int cases=1;
int n;
void rebuild()
{st[0]='$';st[1]='#';int len=strlen(s);for(int i=0;i<len;i++){st[2*i+2]=s[i];st[2*i+3]='#';}st[2*len+2]=0;
}
void solve()
{int len=2*strlen(s)+2;int id,mx=0,ans=1;for(int i=0;i<len;i++){if(mx>i)p[i]=min(p[2*id-i],mx-i);elsep[i]=1;for(;st[p[i]+i]==st[i-p[i]];p[i]++);if(p[i]+i>mx){mx=p[i]+i;id=i;}ans=max(ans,p[i]);}cout<<"Case "<<cases++<<": "<<ans-1<<endl;
}
int main()
{while(gets(s)){if(s[0]=='E'&&s[1]=='N'&&s[2]=='D') break;rebuild();solve();}return 0;
}

poj_1974,最长回文字串manacher相关推荐

  1. 求字符串的最长回文字串 O(n)

    昨天参加了某公司的校园招聘的笔试题,做得惨不忍睹,其中就有这么一道算法设计题:求一个字符串的最长回文字串.我在ACM校队选拔赛上遇到过这道题,当时用的后缀数组AC的,但是模板忘了没写出代码来. 回头我 ...

  2. leetcode系列--5.最长回文字串

    leetcode系列–第5题.最长回文字串 给你一个字符串 s,找到 s 中最长的回文子串. 子串和子序列的区别: 子串:子串是指一个字串中连续的字串 子序列:子序列是指一个字串中非连续的字串 输入: ...

  3. 力扣HOT100算法题5:最长回文字串

    文章目录 一.题目 二.方法一:解题思路 三.方法一:代码解析 四.方法二:动态规划 五.方法二:代码解析 一.题目 给你一个字符串 s,找到 s 中最长的回文子串. 示例 1:输入:s = &quo ...

  4. 怎么判断一个字符串的最长回文子串是否在头尾_最长回文字串/子序列问题(leetcode5,9,519)

    leetcode 5 最长回文子串 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad" 输出: " ...

  5. ural 1297 O(nlogn) 后缀数组求最长回文字串

    把原串复制一份反过来接在原串后面,中间用没出现过的字符隔开,然后跑后缀数组,在原创枚举每一个位为回文中心(分奇偶讨论),则回文串长度相当于原串与反串对应位置的lcp,所以先用ST预处理,然后查询.复杂 ...

  6. Lc5-最长回文字串

    Lc5-最长回文子串 枚举字符串中的每一个字符,从当前下标开始想两边扩散,知道i 和 j指向的字符不相等就判断结果需不需要更新,如果他们之间的长度比已经res大就更新结果. js 求数组求字符串的长度 ...

  7. 算法_Longest Palindromic Substring(寻找最长回文字串)

    题目:Given a string S, find the longest palindromic substring in S. You may assume that the maximum le ...

  8. manacher算法----O(n)最长回文串

    manacher算法----O(n)最长回文串 分类:字符串 (126)  (0)  举报  收藏 manacher的时间复杂度为O(n),后缀数组好像可以处理O(nlogn),但是有些变态题目可能卡 ...

  9. 通俗易懂的最长回文串图解、说明及Java代码(中心扩散法和Manacher算法)

    1. 回文串 作为程序员,回文串这个词已经见怪不怪了,就是一个字符串正着读和反着读是一样的,形式如abcdcba.bbaabb.这里涉及到奇回文和偶回文,奇回文指回文串的字符数是奇数,偶回文指回文串的 ...

最新文章

  1. Spring Cloud 万字总结!
  2. nginx启动报错(1113: No mapping for the Unicode character exists in the target multi-byte code page)...
  3. accesskey 提交
  4. 正在中止线程 异常处理
  5. 记在windows上MySQL8.0安装过程中遇到的问题及解决方案
  6. CodecContext-gop_size 是什么
  7. 实现用户行为监测之webfunny
  8. RTI DDS 01
  9. 循环结构习题:公式求π值
  10. 企业微信裂变获客,粉丝增长的优势在哪?
  11. 2017.7.27 计算机编程培训第二天
  12. matlab fir1 filter,Matlab滤波器设计
  13. 2019年丰巢科技Java面试题
  14. 通俗易懂 !Kafka 开发快速入门看这篇就够了
  15. java pda开发_《Java 手机/PDA 程序设计入门》读书笔
  16. 本科毕业生入户广州需要的材料清单
  17. android studio便签需求介绍,Android我的便签-----SQLite的使用方法
  18. 用什么查看java dump文件
  19. 常用加密算法及Java实现
  20. c语言单片机驱动数码管程序,51单片机IO口直接驱动LED数码管方法

热门文章

  1. 中国企业绩效管理(EPM)软件市场趋势报告、技术动态创新及市场预测
  2. android 自定义view(侧拉删除)
  3. Linux Ubuntu 卸载 mysql
  4. derby mysql 同步_三分钟学会使用Derby数据库
  5. 轻曲书辞,伏案杯空逍遥
  6. wps根据标题智能生成目录
  7. Sitecore开发之组件渲染
  8. VS Code 何时能一统江湖?
  9. Qt自适应图片之scaled()函数详解
  10. 运用smali自动注入技术分析android应用程序行为