最长回文Time Limit: 4000/2000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 11553Accepted Submission(s): 4191Problem Descr...
分类:
其他好文 时间:
2015-08-13 17:15:50
阅读次数:
124
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
http://acm.hdu.edu.cn/showproblem.php?pid=5371/*先用Manacher算法得出最长回文子串,然后用set维护ans的值对所有回文的长度进行排序, 那么之后的点如果覆盖了最接近的点那么那么点肯定是覆盖了当前点,用二分得到最近不大于u的距离S.upper_b...
分类:
其他好文 时间:
2015-08-12 21:36:40
阅读次数:
106
http://acm.hdu.edu.cn/showproblem.php?pid=5340/*Manacher算法:O(n) 实现最长回文子串算法实现:先向原字符串中插入一个原来串不存在的字符,一般用'#',再O(n)遍历一遍,用一个数组p[i]来记录以str[i]为中心的回文半径(注意str[i...
分类:
编程语言 时间:
2015-08-12 16:41:34
阅读次数:
126
【题目】给定一个字符串str,返回str中的最长回文子串的长度。【举例】str=“123”。其中的最长回文子串“1”或者“2”或者“3”,所以返回1。str=“abc1234321ab”。其中的最长回文子串“1234321”,所以返回7。【要求】如果str长度为N,时间复杂度为O(N)。题目分析:1...
分类:
编程语言 时间:
2015-08-11 21:17:51
阅读次数:
153
给定?一个字符串str和它的?一个最长回?文?子序列strLPS,返回字符串str在任意 位置添加最少字符后,整体都是回?文串的其中?一种结果。例如:str="AB1C2DE34F3GHJ21KL"; strLPS="1234321"; 返回:"ABLK1C2DEJHG3F4F3GHJED2C1KL...
分类:
编程语言 时间:
2015-08-11 16:01:35
阅读次数:
128
题目传送门 1 /* 2 Manacher:该算法能求最长回文串,思路时依据回文半径p数组找到第一个和第三个会文串,然后暴力枚举判断是否存在中间的回文串 3 另外,在原字符串没啥用时可以直接覆盖,省去一个数组空间,位运算 >>1 比 /2 速度快,用了程序跑快200ms左右,位运算大...
分类:
其他好文 时间:
2015-08-08 11:44:58
阅读次数:
101
题目传送门关于求解最长回文子串,有dp做法,也有同样n^2的但只用O(1)的空间,还有KMP,后缀数组?? 1 int main(void) { 2 while (scanf ("%s", str + 1) == 1) { 3 int len = strlen (st...
分类:
其他好文 时间:
2015-08-07 21:51:49
阅读次数:
119
题目传送门 1 /* 2 LPS(Longest Palidromic Subsequence):最长回文子序列,和回文串不同,子序列是可以不连续的。 3 转化为LCS问题,将字符串逆序,然后和本串求LCS就是LPS的长度(为啥不就是LPS?),但是前一半是LPS的一半,可以...
分类:
其他好文 时间:
2015-08-07 18:53:21
阅读次数:
190
前几天bestcode做到一道字符串的题目,需要O(n)的回文,正好看到网上的manacher算法,于是来学习一发
进入正题:
manacher算法
用法:一般用于求一个字符串的最大回文,操作过程中会记录以每个点为中心的回文半径,可用来进行其他操作
时间复杂度:O(n)
空间复杂度:记录字符串2*n,半径数组2*n
内容:
记p[i]为以i为中心的回文半径(a...
分类:
编程语言 时间:
2015-08-04 17:16:17
阅读次数:
194