给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1: 输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2: 输入: "cbbd"输出: "bb" 算法:暴力枚举 ...
分类:
其他好文 时间:
2019-08-01 22:50:30
阅读次数:
203
1297. Palindrome 题目大意 求一个字符串中的最长回文子串 题解 可用后缀数组在mlogn + nlogn时间内解决 回文串的主要思想之一是枚举对称中心,为了同意处理奇偶长度的回文串,用$将每个字符分隔开(不要忘记首尾也要加,因此WA了很多发) 而后,把这个回文串反转后接在原串后面。枚 ...
分类:
其他好文 时间:
2019-07-31 18:29:00
阅读次数:
74
最长回文子序列 题目链接 https://leetcode.com/problems/longest palindromic subsequence/ 给定一个字符串s,找到其中最长的回文子序列。可以假设s的最大长度为1000。 最长回文子序列和上一题最长回文子串的区别是,子串是字符串中连续的一个序 ...
分类:
其他好文 时间:
2019-07-31 10:58:45
阅读次数:
95
Given a string, you are supposed to output the length of the longest symmetric sub-string. For example, given Is PAT&TAP symmetric?, the longest symme ...
分类:
其他好文 时间:
2019-07-27 23:49:38
阅读次数:
111
Gym 101350I - Mirrored String II ( Manacher马拉车算法 -- 最长回文子串 ) 题意 给一个字符串, 求最长回文镜像子串长度 思路 Manacher + 镜像判断 算法实现 : Manacher算法总结 AC代码 ( kuangbin板子 ) #includ ...
分类:
其他好文 时间:
2019-07-26 19:13:04
阅读次数:
139
Manacher Algorithm算法,俗称马拉车算法,其时间复杂为O(n)。该算法是利用回文串的特性来避免重复计算的,至于如何利用,且由后面慢慢道来。 在时间复杂度为O(n^2)的算法中,我们在遍历的过程要考虑到回文串长度的奇偶性,比如说“abba”的长度为偶数,“abcba”的长度为奇数,这样 ...
分类:
编程语言 时间:
2019-07-26 17:39:09
阅读次数:
86
马拉车用于解决最长回文子串问题,重点是子串,而不是子序列,时间复杂度为O(n)。 解释一下变量的意义: Len[i]数组去存第i个位置到mx位置的长度 id记录上一次操作的位置(这个操作可以看模板) mx标记上一次的最长子串的最右端 模板: 当我们要求的以第i个字符为回文字符串的中心的时候,如果i> ...
分类:
编程语言 时间:
2019-07-24 10:04:53
阅读次数:
122
题目 "leetcode:5.?Longest Palindromic Substring" 解法 动态规划 时间复杂度$O(n^2)$,空间复杂度$O(n^2)$ 基本解法直接看代码 中心扩散法 时间复杂度$O(n^2)$,空间复杂度$O(1)$ 我们先假定以某点为中心向两端扩散,找到以该点为中心 ...
分类:
编程语言 时间:
2019-07-23 00:04:26
阅读次数:
125
什么是中心扩散法? 中心扩散法,顾名思义就是以某一个位置为中心,向周围扩散,直到满足条件或到达边界。 Leetcode 5.最长回文子串 题目描述:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1:输入: "babad",输出: "bab",注意: ...
分类:
编程语言 时间:
2019-07-07 14:16:12
阅读次数:
292