题目大意
给定一个字符串 s ,找到其中最长的回文子序列,并返回该序列的长度。可以假设 s 的最大长度为 1000 。
示例 1:
输入:
"bbbab"
输出:
4
一个可能的最长回文子序列为 "bbbb"。
解题思路
动态规划。dp[i][j]表示i~j范围内的最长回文子序列的长度。
- s[i]==s[j]:则i~j范围内的最长回文子序列等于dp[i][j]=dp[i+1][j-1]+2;
- 否则:等于dp[i][j]=max(dp[i+1][j], dp[i][j-1]);
class Solution {
public:
int longestPalindromeSubseq(string s) {
if (s.s