原题链接:https://leetcode-cn.com/problems/longest-palindromic-subsequence/

注意不是回文子串,子串必须是连续!

dp[i][j]表示字符串从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])

最后返回dp[0][len-1]即可,下面展示自顶向下和自底向上两种代码。

代码(自顶向下):

int longestPalindromeSubseq(string s) {int size = s.size();vector<vector<int>> dp(size,vector<int>(size,0));for(int i=0;i<size;i++) dp[i][i]=1;for(int len=1;len<=size;len++){for(int i=0;i<size-len;i++){int j=i+len;if(s[i]==s[j]){dp[i][j]=dp[i+1][j-1]+2;}else{dp[i][j]=max(dp[i+1][j],dp[i][j-1]);//回文子序列不需要单独计算两个连续的情况,因为如果出现不相等的情况dp为1,而不是为0。注意和回文子串区分。}}}return dp[0][size-1];
}

代码(自底向上):

int longestPalindromeSubseq(string s) {int size = s.size();vector<vector<int>> dp(size,vector<int>(size,0));for(int i=0;i<size;i++) dp[i][i]=1;for(int i=size-1;i>=0;i--){for(int j=i+1;j<size;j++){if(s[i]==s[j]){dp[i][j]=dp[i+1][j-1]+2;}else{dp[i][j]=max(dp[i+1][j],dp[i][j-1]);}}}return dp[0][size-1];
}

leetcode算法题--最长回文子序列★★相关推荐

  1. leetcode算法题--最长回文子串

    题目链接:https://leetcode-cn.com/problems/longest-palindromic-substring/ 相关题目:最长回文子序列 动态规划 dp[i][j]表示从i到 ...

  2. 【Leetcode】516. 最长回文子序列

    516. 最长回文子序列 题目描述 解题思路:动态规划 题目描述 给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度.子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任 ...

  3. leetcode算法题--最长定差子序列

    原题链接:https://leetcode-cn.com/problems/longest-arithmetic-subsequence-of-given-difference/ 相关题目:最长等差数 ...

  4. LeetCode刷题——最长回文子串

    目录 一.题目描述 二.题解 三.源码 一.题目描述 二.题解 三.源码 class Solution(object):def longestPalindrome(self, s):"&qu ...

  5. 【Leetcode刷题Python】516. 最长回文子序列

    1 题目 给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度. 子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列. 示例 1: 输入:s = &q ...

  6. 【leetcode】【动态规划】最长回文子序列

    [leetcode]最长回文子序列 题目 代码 leetcode题目地址 题目 给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度. 子序列定义为:不改变剩余字符顺序的情况下,删除某些 ...

  7. Leetcode 516.最长回文子序列

    Time: 20190906 Type: Medium 题目描述 给定一个字符串s,找到其中最长的回文子序列.可以假设s的最大长度为1000. 示例 1: 输入: "bbbab" ...

  8. java 最长回文_【Java】【每日算法/刷穿 LeetCode】5. 最长回文子串(中等)

    首页 专栏 java 文章详情 0 [每日算法/刷穿 LeetCode]5. 最长回文子串(中等) 宫水三叶发布于 今天 12:00 题目描述 给你一个字符串 s,找到 s 中最长的回文子串. 示例 ...

  9. 算法62---最长回文子序列长度(子串)、回文子序列总共个数(子串)【动态规划】...

    参考链接:https://www.cnblogs.com/AndyJee/p/4465696.html 一.题目:最长回文子序列长度 给定字符串,求它的最长回文子序列长度.回文子序列反转字符顺序后仍然 ...

最新文章

  1. 教你用Python进行自然语言处理(附代码)
  2. 《Spark大数据分析:核心概念、技术及实践》一1.5 NoSQL
  3. python 查看数据结构类型_python标准数据结构类型
  4. eclipse中birt插件使用_eclipse安装birt插件
  5. Pointer 指针
  6. CSS-行内框、行框、行高
  7. (day 33 - 位运算 )剑指 Offer 56 - II. 数组中数字出现的次数 II
  8. 蓝桥杯 拉马车(模拟)
  9. java电商ERP源码 跨境电商ERP源码 ERP源码
  10. SPSS编程-统计自动化-VBA脚本开发
  11. 计算机网络原理_第8章 局域网技术 之二 令牌环
  12. h2ouve下载 insyde_H20UVE_100.00.9.2 Insyde H2OUVE (UEFI Variable Editor) - 下载 - 搜珍网
  13. 解决Source Not Found问题
  14. [android issue解析] fd leakage cause app ANR
  15. 区块链在中国(3):区块链场景漫谈
  16. mysql usleep_PHP 暂停函数 sleep() 与 usleep() 的区别
  17. 分享几个实用,装逼的cmd命令。
  18. 服!造成程序员脱发的两大原因竟然是……
  19. 小程序传值对象数值到另一个页面大小限制
  20. PHP扩展 -- pecl, pear, composer

热门文章

  1. python语言用途-python编程语言有什么用途
  2. python读文件代码-Python遍历文件夹和读写文件的实现代码
  3. python错误-第16天:Python 错误和异常
  4. python一千行入门代码-Python – 一次从文件中读取1000行
  5. python网络爬虫权威指南 百度云-Python网络爬虫权威指南(第2版)
  6. python有什么用途和价值-Python是什么 Python的用处
  7. 老师学python可以干嘛-Python除了爬虫,还能干啥?
  8. python快速入门答案-python快速入门基础知识
  9. python入门教程非常详细-python初学者怎么入门:python入门教程非常详细
  10. anaconda怎么运行python程序-致Python初学者 Anaconda入门使用指南完整版