HDU 3068 最长回文(manacher算法)...
分类:
编程语言 时间:
2015-07-19 20:11:58
阅读次数:
151
算法思想:
设有字符串s[] = "121"
第一步:通过在每个字符左右都添加一个特殊字符,把奇数长度和偶数长度的字符串都转化成奇数(例如. "121" 加上特殊字符后变成"#1#2#1" ),同时也可在开头再加一个特殊字符,以便于忽略越界问题(如上例"121"变成"$#1#2#1#" 此时开头的特殊字符$和字符串末尾的\0与此串中其他字符都不同,即可忽略越界问题),此时字符串变成
s[]...
分类:
编程语言 时间:
2015-07-06 01:28:25
阅读次数:
155
首先,在谈到Manacher算法之前,我们先来看一个小问题:给定一个字符串S,求该字符串的最长回文子串的长度.对于该问题的求解,网上解法颇多,时间复杂度也不尽相同,这里列述几种常见的解法.
解法一
通过枚举S的子串,然后判断该字串是否为回文,由于S的子串个数大约为,加上每次判断需要的时间,所以总的时间复杂度为,空间复杂度为.
bool check(string &S, int l...
分类:
编程语言 时间:
2015-07-03 23:30:03
阅读次数:
179
将多边形转化为如下的环:1到2的边,角2,2到3的边,角3,...,n-1到n的边,角n,n到1的边,角1然后枚举对称轴,如果i是对称轴,那么[i-n,i+n]是一个回文串用Manacher算法实现即可。时间复杂度$O(n)$。#include#define N 100010typedef long...
分类:
其他好文 时间:
2015-06-30 14:24:17
阅读次数:
122
这里,我介绍一下O(n)回文串处理的一种方法。Manacher算法.原文地址:http://zhuhongcheng.wordpress.com/2009/08/02/a-simple-linear-time-algorithm-for-finding-longest-palindrome-sub....
分类:
编程语言 时间:
2015-06-20 13:08:23
阅读次数:
192
Manacher 算法是时间、空间复杂度都为 O(n) 的解决 Longest palindromic substring(最长回文子串)的算法。回文串是中心对称的串,比如 'abcba'、'abccba'。那么最长回文子串顾名思义,就是求一个序列中的子串中,最长的回文串。本文最后用 Python ...
分类:
编程语言 时间:
2015-06-16 20:49:30
阅读次数:
354
manacher算法的解释见
这里。
//求字符串s中最大回文的长度,要求字符串s不包含字符‘#’
int manacher(const string &s)
{
if (s.size() <= 1)
return s.size();
//往s每个字符之间以及s的首尾都插入‘#’
string str(s.size() * 2 + 1, '#');
for (int...
分类:
编程语言 时间:
2015-06-05 14:06:24
阅读次数:
125
算法的第一步就是在每个字符的左右都加上一个#,这样有什么效果呢。
比如aba初始化之后为#a#b#a#,字符串长度为7是奇数。
比如1221初始化之后为#1#2#2#1#,字符串长度为9是奇数。
为什么我们要将其转换成奇数呢,因为算法求取回文串长度的时候,需要有一个中心节点,之后分别向左右搜索,所以需要将回文串豆转换为奇数长度。
之后我们需要将str[0]赋值为一个字符,可以赋值为$,...
分类:
编程语言 时间:
2015-05-25 14:41:02
阅读次数:
146
题目大意:给定一个字符串SS,要求分成A+prefix+B+middle+C+suffixA+prefix+B+middle+C+suffix6段,满足:
|A|=|C||A|=|C|
|B||B|为奇数
A+B+CA+B+C为回文串
除BB外所有段长度都可以为00
要求最大化|A|+|B|+|C||A|+|B|+|C|,输出一组方案(|A|=|C|=0|A|=|C|=0时只输出BB)首先...
分类:
其他好文 时间:
2015-05-13 22:04:47
阅读次数:
259
题目大意: 给出一个只由小写英文字符a,b,c…y,z组成的字符串S,求S中最长回文串的长度.
解题思路:Manacher算法#include
#include
#include
using namespace std;char S[110005], str[220010];
int len, p[220010];void init...
分类:
其他好文 时间:
2015-05-13 13:02:34
阅读次数:
91