Description:给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度.回文就是正反读都是一样的字符串,如aba, abba等Input:输入有多组case,不超过120组,每组输入为一行小写英文字符a,b,c...y,z组成的字符串S两组case之间由空行隔开...
分类:
编程语言 时间:
2015-10-12 10:27:14
阅读次数:
143
求最大回文子串先对字符串 加特殊字符处理O(N) pR最多被更新2n次PArr[i]:以i为中心的最大回文子串的半径pR: 最右回文子串将要到达的位置 随时更新index:最右回文子串的中心 随时更新求PArr[i]的时候借助了前面的信息第一类:i被包括在pR里面则看与i对应的i1的回文子串是否被包...
分类:
编程语言 时间:
2015-10-11 22:54:57
阅读次数:
186
if (str == null || str.length() == 0) { return 0; } char[] charArr = manacherString(str); int[] pArr = new int[charArr.length]; int index = -1; int pR...
分类:
编程语言 时间:
2015-10-11 22:53:53
阅读次数:
164
主要学习自:http://articles.leetcode.com/2011/11/longest-palindromic-substring-part-ii.html问题描述:回文字符串就是左右对称的字符串,如:"abba",而最长回文子串则是字符串长度最长的回文子字符串,如"abbaca"的最...
分类:
编程语言 时间:
2015-10-11 17:52:19
阅读次数:
215
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3068题意很清楚:就是求一个串s的子串中最长回文串的长度;这类题用到了manacher算法manacher算法(复制大神的解释):定义数组p[i]表示以i为中心的(包含i这个字符)回文串半径长将字符串s从...
分类:
编程语言 时间:
2015-09-30 20:59:16
阅读次数:
184
在上篇《manacher算法处理最长的回文子串(一)》解释了manacher算法的原理,接着给该算法,该程序在leetcode的最长回文子串中通过。首先manacher算法维护3个变量。一个名为radius[i]的数组,表示以i为中心轴承的回文子串的半径,如abcdcba中,字符d的下标为4,...
分类:
编程语言 时间:
2015-09-22 16:16:33
阅读次数:
216
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3068题意:求一个字符串的最长回文子串思路:枚举子串的两个端点,根据回文串的定义来判断其是否是回文串并更新答案,复杂度O(N3)。枚举回文串的对称轴i,以及回文半径r,由i和r可确定一个子串,然后暴力判断...
分类:
编程语言 时间:
2015-09-03 20:29:56
阅读次数:
233
回文字符串,想必大家不会不熟悉吧?回文串会求的吧?暴力一遍O(n^2)很简单,但当字符长度很长时便会TLE,简单,hash+二分搞定,其复杂度约为O(nlogn), 而Manacher算法能够在线性的时间内处理出最长回文子串。让我们来看道题:http://acm.hdu.edu.cn/showpro...
分类:
编程语言 时间:
2015-09-03 16:30:49
阅读次数:
233
https://leetcode.com/problems/longest-palindromic-substring/manacher算法相关:http://blog.csdn.net/ywhorizen/article/details/6629268class Solution {public:...
分类:
编程语言 时间:
2015-09-01 21:33:57
阅读次数:
168
https://leetcode.com/problems/longest-palindromic-substring/manacher算法:http://blog.csdn.net/ywhorizen/article/details/6629268string longestPalindrome(...
分类:
编程语言 时间:
2015-09-01 18:28:26
阅读次数:
131