516. 最长回文子序列
给定一个字符串s,找到其中最长的回文子序列。可以假设s的最大长度为1000。
示例 1:
输入:
“bbbab”
输出:
4
一个可能的最长回文子序列为 “bbbb”。
示例 2:
输入:
“cbbd”
输出:
2
一个可能的最长回文子序列为 “bb”。
PS:
动态规划,
第一个就不多说了,dp【i】【j】就是截取后i位,然后挨着截取后i位的第j位
相等就+2,不相等找【i+1】【j】和【i】【j-1】中最大的
第二个,根据第一个我一直是用的我的上一个,因为我是i越来越小
然后直接用两个数组,一个保存上一个,一个记录现在,
然后替换即可
class Solution {
// public int longestPalindromeSubseq(String s) {
// if (s == null || s.length() == 0) {
// return 0;
// }
// int n = s.length();
// int[][] dp = new int[n][n];
// for (int i = n - 1; i >= 0; i--) {
// dp[i][i] = 1;
// for (int j = i + 1; j < n; j++) {
// if (s.charAt(i) == s.c