含义 就是一个$O(n)$的复杂度求解最长回文子串的算法 思路 思路的话我随便说下 首先回文串可能是奇数也可能是偶数,那么对称中心就有可能是两个字符的空隙,所以先给每个字符插如一个隔板符号 '|' 第0个字符插入'~' 防止出现超出边界的问题 如abcbs -> ~|a|b|c|b|s| 设$p[i ...
分类:
编程语言 时间:
2021-07-28 21:25:10
阅读次数:
0
题目内容:给定一个字符串$s$,求其中最长的回文子串的长度。 数据范围:$s$的长度不超过$2105$ 时间限制:\(1000ms\) 传统的动态规划的做法时间复杂度$O(n2)$,会$TLE$.此处不多作介绍. 以下给出两种优化的做法: 解法一: 1.当回文子串的长度为奇数时:扫描数组,枚举每一个 ...
分类:
其他好文 时间:
2021-06-28 18:15:48
阅读次数:
0
2刷。感觉看矩阵不太好理解,还是按原来的。 动态规划假设子问题已经解决,看最后一步。 class Solution { //dp[i][j],ss[i...j]是不是回文子串 //递推 //dp[i][j]=dp[i+1][j-1]&&s[i]==s[j] //注意循环遍历的顺序。 public S ...
分类:
其他好文 时间:
2021-06-06 18:43:27
阅读次数:
0
【题意】 求最长回文子串 【分析】 把原字符串翻过来接到后面,中间放一个特殊字符 然后枚举每一个点作为回文串的中心,计算当前位置的后缀和对应的延长位置上的后缀的最长公共前缀 具体的:分类讨论如果i为奇数长度的中心lcp(i,n-i-1),i为偶数长度回文串的中心的一个lcp(i,n-i) 【代码】 ...
分类:
其他好文 时间:
2021-04-28 12:01:17
阅读次数:
0
最长回文子串 给你一个字符串 s,找到 s 中最长的回文子串。 示例 1: 输入:s = "babad" 输出:"bab" 解释:"aba" 同样是符合题意的答案。 示例 2: 输入:s = "cbbd" 输出:"bb" 示例 3: 输入:s = "a" 输出:"a" 示例 4: 输入:s = "a ...
分类:
其他好文 时间:
2021-02-16 11:51:10
阅读次数:
0
首先解决“判断时忽略标点,输出进却要按原样”的问题? 可以用一个简单的方法:构造一个新字符串,不包含原来的标点符号,而且所有字符变成小写(顺便解决了大小写的问题)。 由于在求最大值时,不知道s[i]和s[j]在原串中的位置。因此,必须增加一个数组pos,用pos[i]保存s[i]在原串中的位置。 c ...
分类:
其他好文 时间:
2021-02-03 10:58:22
阅读次数:
0
5. 最长回文子串 给你一个字符串 s,找到 s 中最长的回文子串。 示例 1: 输入:s = "babad" 输出:"bab" 解释:"aba" 同样是符合题意的答案。 示例 2: 输入:s = "cbbd" 输出:"bb" 示例 3: 输入:s = "a" 输出:"a" 示例 4: 输入:s = ...
分类:
其他好文 时间:
2021-02-01 12:34:28
阅读次数:
0
动态规划实际上就是将大问题分解为小问题,之后利用小问题的答案来推导大问题的答案 一般会有一个转移方程就像 P(i,j) = P(i+1,j-1)∩(Si==Sj)(此为最长回文子串的转移方程) 当大问题无限拆分就会化为初始的定义 动态规划问题有一个DP表用来存放结果以便后面直接运用表中的结果 1.D ...
分类:
其他好文 时间:
2021-01-14 11:17:53
阅读次数:
0
题目:https://leetcode-cn.com/problems/longest-palindromic-substring/ 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000 我的是暴力解法,最终勉强通过了第一次答案: 通过遍历从头到尾的所有字符串来比较 ...
分类:
其他好文 时间:
2021-01-06 12:31:44
阅读次数:
0
class Solution { // 思路:【动态规划】 // 状态转移方程是 p[i,j] = p[i+1,j-1] && p[i] = p[j] // p[i,j] 表示第i个 和 第j 个是相同的 // 整体分两层循环【第一层按回文长度从零到n , 第二层就是字符从第一个开始往后循环】 pu ...
分类:
其他好文 时间:
2020-12-25 12:13:31
阅读次数:
0