647. 回文子串
初步思路:动态规划。
总结:
dp[i][j]:表示区间范围[i,j] (注意是左闭右闭)的子串是否是回文子串
当 s[i]==s[j] 时,需要判断 dp[i+1][j-1] 是不是一个回文串
if s[i] == s[j] && (j - i < 2 || dp[i + 1][j - 1]) ,dp[i][j]=true
用时:45分钟
516.最长回文子序列
初步思路:动态规划。
总结:
回文子串必须要是连续的,而回文子序列是可以不连续的
dp[i][j] :字符串 s 在 [i, j] 范围内最长的回文子序列的长度为 dp[i][j]
当 s[i]==s[j] 时,dp[i][j] = dp[i + 1][j - 1] + 2;
当 s[i]!=s[j] 时,dp[i][j] = max(dp[i + 1][j], dp[i][j - 1]);
用时:30分钟