目录
题目
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:
输入: "babad"
输出: "bab"
注意: "aba" 也是一个有效答案。
示例 2:输入: "cbbd"
输出: "bb"
思路
这是一道经典的动态规划题目,那么就只需要根据问题拆解出动规数组的迭代公式基本上就能解决。
首先动规创建一个二维dp数组,其中下标dp[i][j]表示字符串的第j个位置到第i个位置的子串是否是回文串,那么递推关系就很好梳理了,如果要这个子串为回文串的话,只需要满足两个条件:1.第j+1到第i-1位置的子串为回文串,2.当前第i个字符和第j个字符相等。那么递归关系就可以写成: