【LeetCode】5. 最长回文子串
给你一个字符串 s,找到 s 中最长的回文子串。
示例 1:
输入:s = "babad"
输出:"bab"
解释:"aba" 同样是符合题意的答案。
示例 2:
输入:s = "cbbd"
输出:"bb"
提示:
1 <= s.length <= 1000s仅由数字和英文字母组成
动态规划
- 确定dp含义:
dp[i] [j]表示:字符串s,以i下标开始,j下标结束,是不是回文
- 确定dp递推公式
因为以j下标结束,则j一定要大于等于i
如果i下标和j下标相邻,即j - i == 1,当对应下标字符相等时为回文,即dp[i] [j] = (arr[i] == arr[j])
如果i下标和j下标不相邻,则当两下标之间的最大子串是回文且下标i和下标j对应字符相等时为回文,即dp[i] [j] = dp[i+1] [j-1] && (arr[i] == arr[j])
- dp初始化
单个字符的都是回文
for(int i = 0; i < n; i++) {
dp[i][i] = true;
}
-
确定遍历顺序
从递归公式中
dp[i] [j]依
最长回文子串

最低0.47元/天 解锁文章
1128

被折叠的 条评论
为什么被折叠?



