5.4 最长回文串
最长回文串
问题描述
给你一个字符串 s,找到 s 中最长的回文子串。
问题分析
策略选择
算法设计
- 问题分解划分阶段:规模增长的方向有两个,第一个是最长回文串的长度,第二个是字符串的长度。
- 确定状态变量dp[i][j]。表示长度为i,以j为起点的字符串是否是回文串。
- 确定状态转移方程。长度减2,起始位置为j+1的回文字符串。
$$
dp[i][j]=dp[i-2][j+1] and s[j]==s[j+1-1]
$$ - 确定边界实现过程。i增长的边界是n,表示最大长度为n,i=0,和i=1时,值都初始化为1;j增长的边界是0到n-i
算法分析
- 时间复杂度O(n^2)
- 空间复杂度O(n^2)
算法实现
1 | class Solution { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Estom的博客!




