#yyds干货盘点# 动态规划专题:最长回文子序列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#yyds干货盘点# 动态规划专题:最长回文子序列相关的知识,希望对你有一定的参考价值。

1.简述:

描述

给定一个字符串,找到其中最长的回文子序列,并返回该序列的长度。

注:回文序列是指这个序列无论从左读还是从右读都是一样的。

本题中子序列字符串任意位置删除k(len(s)>=k>=0)个字符后留下的子串。

数据范围:字符串长度满足 #yyds干货盘点#

进阶:空间复杂度 #yyds干货盘点# , 时间复杂度 #yyds干货盘点#

输入描述:

输入一个字符串

输出描述:

输出最长回文子序列

示例1

输入:

abccsb

输出:

4

说明:

分别选取第2、3、4、6位上的字符组成“bccb”子序列是最优解
示例2

输入:

abcdewa

输出:

3

说明:

分别选取第一个和最后一个a,再取中间任意一个字符就是最优解

2.代码实现:

    public int longestPalindromeSubseq(String s) 
int n = s.length();
int[][] dp = new int[n][n];
for (int i = n - 1; i >= 0; i--)
dp[i][i] = 1;
char c1 = s.charAt(i);
for (int j = i + 1; j < n; j++)
char c2 = s.charAt(j);
if (c1 == c2)
dp[i][j] = dp[i + 1][j - 1] + 2;
else
dp[i][j] = Math.max(dp[i + 1][j], dp[i][j - 1]);



return dp[0][n - 1];

以上是关于#yyds干货盘点# 动态规划专题:最长回文子序列的主要内容,如果未能解决你的问题,请参考以下文章

#yyds干货盘点#马拉车算法解最长回文子串!Manacher

#yyds干货盘点# 动态规划专题:数位染色

#yyds干货盘点# 动态规划专题:信封嵌套

#yyds干货盘点# 动态规划专题:小红取数

#yyds干货盘点# 动态规划专题:装箱问题

#yyds干货盘点# 动态规划专题:跳跃游戏