求解最长回文子串的方法很多,有几种常见的O(N^2)的最长回文子串求解方法,比如说枚举中心位置向两边扩展,动态规划等,大部分朋友应该都比较熟悉。
Manacher算法相比于上面两种方法,时间复杂度是O(N),空间复杂度也是O(N),可以说是快速求解决回文子串的利器。下面介绍这一算法的思想,以及在文末给与它的实现。
我们以...
分类:
编程语言 时间:
2015-08-29 15:30:18
阅读次数:
210
这篇文章对Manacher介绍得很详细,而且很容易读懂,原文转自:http://blog.csdn.net/pi9nc/article/details/9251455一、问题描述现给定一个已知的字符串str[],现在想要在O(n)的时间复杂度之内求出一个最长的回文子字符串(正着和倒着顺序读一致)。M...
分类:
编程语言 时间:
2015-08-29 15:20:39
阅读次数:
243
题目描述给定一个字符串,求它的最长回文子串的长度。分析与解法最容易想到的办法是枚举所有的子串,分别判断其是否为回文。这个思路初看起来是正确的,但却做了很多无用功,如果一个长的子串包含另一个短一些的子串,那么对子串的回文判断其实是不需要的。同时,奇数和偶数长度还要分别考虑。Manacher算法可以解决...
分类:
编程语言 时间:
2015-08-26 23:53:24
阅读次数:
159
最长回文题目传送:HDU - 3068 - 最长回文AC代码:#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#i...
分类:
编程语言 时间:
2015-08-26 17:58:28
阅读次数:
180
题意:字母表的26个字母都有一个价值,给定一个字符串,将该字符串切成两份,对于每一份,如果是回文串,就获得该子串的字母价值之和,否则该子串的价值为0。求出将字符串切成两份后能够获得的最大价值。
做法:先用Manacher算法求出以每个字母为中心的回文串的长度,并计算该字符串的前缀价值和。然后枚举切割点,得到两份子串。这样就可以知道每个子串的中心点,然后检查以该子串的中心点作为中心点的回文串的长度...
分类:
编程语言 时间:
2015-08-20 13:14:36
阅读次数:
132
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5371
题目大意:给一串数字,在子串中找到“1-2-1”的形式,其中1和2 是回文串,找出最长的那一串。
思路:利用manacher算法得出最长序列。观察子串形式,1和2是回文串,其实2和后面那个1也是回文串。
在之前我们已经通过manacher算法得到了每个数字所能延伸的长度,所以我们只要枚举第...
分类:
编程语言 时间:
2015-08-17 21:53:34
阅读次数:
150
求出一个连续子序列,这个子序列由三部分ABC构成,其中AB是回文串,A和C相同,也就是BC也是回文串。求这样一个最长的子序列。Manacher算法是在所有两个相邻数字之间插入一个特殊的数字,比如-1,Manacher算法跑完之后,就计算出每个数字为中心的回文子序列的最大长度由题意可以知道,AB和BC...
分类:
其他好文 时间:
2015-08-15 18:06:32
阅读次数:
115
Manacher算法
【题目】
给定一个字符串str,返回str中的最长回文子串的长度。
【举例】
str=“123”。其中的最长回文子串“1”或者“2”或者“3”,所以返回1。
str=“abc1234321ab”。其中的最长回文子串“1234321”,所以返回7。
【进阶题目】
给定一个字符串str,想通过添加字符的方式使得str整体都变成回文字符串,但要求只能在str的末尾添加...
分类:
编程语言 时间:
2015-08-15 16:39:59
阅读次数:
146
O(n)回文子串(Manacher)算法转自:http://www.cnblogs.com/biyeymyhjob/archive/2012/10/04/2711527.html资料来源网络 参见:http://www.felix021.com/blog/read.php?2040问题描述:输入一个...
分类:
编程语言 时间:
2015-08-13 17:57:23
阅读次数:
132
http://acm.hdu.edu.cn/showproblem.php?pid=5371
Problem Description
Hotaru Ichijou recently is addicated to math problems. Now she is playing with N-sequence.
Let's define N-sequence, which is...
分类:
编程语言 时间:
2015-08-13 14:32:32
阅读次数:
128