判断最长不连续回文

#include <bits/stdc++.h>
using namespace std;
int main()
{
char ch[];
while(gets(ch))
{
int len=strlen(ch),dp[],ans=;
for(int i=;i<len;i++)
ch[i]=tolower(ch[i]),dp[i]=;
for(int i=;i<len;i++)
{
int cnt=;
for(int j=i-;j>=;j--)
{
int tmp=dp[j];
if(ch[i]==ch[j]) dp[j]=cnt+;
cnt=max(cnt,tmp);
}
}
for(int i=;i<len;i++) ans=max(ans,dp[i]);
printf("%d\n",ans);
} return ;
}

过程如图

b b a c b b b c a d
1 1 1 1 1 1 1 1 1 1
2 1 1 1 1 1 1 1 1 1
2 1 1 1 1 1 1 1 1 1
2 1 1 1 1 1 1 1 1 1
3 3 1 1 1 1 1 1 1 1
5 3 1 1 2 1 1 1 1 1
5 4 1 1 3 2 1 1 1 1
5 4 1 5 3 2 1 1 1 1
5 4 7 5 3 2 1 1 1 1
5 4 7 5 3 2 1 1 1 1

判断最长连续回文

https://segmentfault.com/a/1190000008484167

Manacher模板

#include<ctype.h>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
char s[],news[];
int lens[];
int init()
{
news[]='$',news[]='#';
int j=;
for(int i=;s[i]!='\0';i++)
news[j++]=tolower(s[i]),news[j++]='#';
news[j]='\0';
return j;
}
int manacher()
{
int len=init(),mx=,id,maxlen=;
for(int i=;i<len;i++)
{
if(i<mx) lens[i]=min(lens[*id-i],mx-i);
else lens[i]=; while(news[i-lens[i]]==news[i+lens[i]])
lens[i]++; if(mx<i+lens[i]) id=i,mx=lens[i]+i;
maxlen=max(maxlen,lens[i]-);
}
return maxlen;
}
int main()
{
while(gets(s))
{
printf("%d\n",manacher());
} return ;
}

palindrome 回文 /// Manacher算法的更多相关文章

  1. hdu 3068 最长回文 manacher算法(视频)

    感悟: 首先我要Orz一下qsc,我在网上很难找到关于acm的教学视频,但偶然发现了这个,感觉做的很好,链接:戳戳戳 感觉这种花费自己时间去教别人的人真的很伟大. manacher算法把所有的回文都变 ...

  2. HDU3068 最长回文 Manacher算法

    Manacher算法是O(n)求最长回文子串的算法,其原理很多别的博客都有介绍,代码用的是clj模板里的,写的确实是异常的简洁,现在的我只能理解个大概,下面这个网址的介绍比较接近于这个模板,以后再好好 ...

  3. hdu_3068 最长回文(Manacher算法)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3068 最长回文 Time Limit: 4000/2000 MS (Java/Others)    M ...

  4. 字符串-回文-Manacher算法

    http://blog.csdn.net/zzkksunboy/article/details/72600679 https://segmentfault.com/a/1190000008484167 ...

  5. hdu-3068-最长回文(manacher算法模板)

    题目链接 /* Name:hdu-3068-最长回文 Copyright: Author: Date: 2018/4/24 16:12:45 Description: manacher算法模板 */ ...

  6. [hdu3068 最长回文]Manacher算法,O(N)求最长回文子串

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3068 题意:求一个字符串的最长回文子串 思路: 枚举子串的两个端点,根据回文串的定义来判断其是否是回文 ...

  7. HDU 3068 最长回文 Manacher算法

    Manacher算法是个解决Palindrome问题的O(n)算法,能够说是个超级算法了,秒杀其它一切Palindrome解决方式,包含复杂的后缀数组. 网上非常多解释,最好的解析文章当然是Leetc ...

  8. HDU 3068 最长回文 manacher 算法,基本上是O(n)复杂度

    下面有别人的比较详细的解题报告: http://wenku.baidu.com/view/3031d2d3360cba1aa811da42.html 下面贴我的代码,注释在代码中: #include ...

  9. hdu3068最长回文(Manacher算法)

    简单来说这是个很水的东西.有点dp的思想吧.推荐两个博客,很详细. http://blog.csdn.net/xingyeyongheng/article/details/9310555 http:/ ...

随机推荐

  1. java 轻量级 RestClient

    package org.rx.socks.http; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; ...

  2. python pip时openssl的错误

    也不知道看了哪个方法弄成这个样子的,也没办法,下面方法可用 https://blog.csdn.net/chr1341901410/article/details/80995451

  3. 如何解决Unsupported major.minor version 52.0问题?

    为什么出现Unsupported major.minor version 52.0? You get this error because a Java 7 VM tries to load a cl ...

  4. Microsoft specification

    http://msdn.microsoft.com/en-US/ 搜索 specification 搜索"PE COFF specification",得到一篇Microsoft官 ...

  5. 机器学习技法笔记:02 Dual Support Vector Machine、KKT

    原文地址:https://www.jianshu.com/p/58259cdde0e1 Roadmap Motivation of Dual SVM Lagrange Dual SVM Solving ...

  6. 动态方法调用秘密武器 —— invokedynamic 指令解读 - MethodHandle

    原文:https://juejin.im/book/5c25811a6fb9a049ec6b23ee/section/5ccc66dd518825403b5975fb import java.lang ...

  7. Win7环境下VS2010配置Cocos2d-x-2.1.4最新版本的开发环境(亲测)

      写这篇博客时2D游戏引擎Cocos2d-x的最新版本为2.1.4,记得很久以前使用博客园博主子龙山人的一篇博文<Cocos2d-x win7+vs2010配置图文详解(亲测)>成功配置 ...

  8. jmeter 读写excel插件编写教程系列(1) -开篇

    不知道为什么,jmeter 竟然不提供 读写excel 的Sampler! 但是在我们自动化接口测试过程中,参数化.保存测试数据,用excel 是比较好的解决方案! 接下来一段儿时间,大虫会抽出一些时 ...

  9. pytest--fixture---自动应用

    import pytest@pytest.fixture(autouse=True)-----加上auto=True,每个方法执行前都会自动登陆def login_r(open_browser): p ...

  10. 【转】从SOA到微服务,企业分布式应用架构在云原生时代如何重塑

    摘要: SOA 采用中心化的服务总线架构,解耦了业务逻辑和服务治理逻辑:微服务架构回归了去中心化的点对点调用方式,在提升敏捷性和可伸缩性的同时,也牺牲了业务逻辑和服务治理逻辑解耦所带来的灵活性. 为了 ...