一、题解
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。
示例1:
输入: “babad”
输出: “bab”
注意: “aba” 也是一个有效答案。
示例2:
输入: “cbbd”
输出: “bb”
二、常规理解
思路就是创建一个二维数组,boolean[][] flag
, flag[i][j]
表示字符串第 i 到 j 是否是回文。
边界:字符串长度为1 是为 TRUE
最优子结构(假设flag[i][j]
表示字符串i到j的最长回文串):flag[i][j] = max{flag[i+1][j-1],j-i}
状态转换:
flag[i][i] = true
flag[i][j] = max{flag[i+1][j-1],j-i}
由于判断flag[i][j]
时,要保证