博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 516. 最长回文子序列(动态规划)
阅读量:2006 次
发布时间:2019-04-28

本文共 758 字,大约阅读时间需要 2 分钟。

1. 题目

给定一个字符串s,找到其中最长的回文子序列。可以假设s的最大长度为1000。

示例 1:输入:"bbbab"输出:4一个可能的最长回文子序列为 "bbbb"。示例 2:输入:"cbbd"输出:2一个可能的最长回文子序列为 "bb"。

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/longest-palindromic-subsequence
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

类似题目:

注意,子序列,可以隔着字符

在这里插入图片描述

class Solution {
public: int longestPalindromeSubseq(string s) {
int i, j, n = s.size(); vector
> dp(n,vector
(n,0)); for(i = 0; i < n; ++i) dp[i][i] = 1; for(j = 0; j < n; ++j) {
for(i = j-1; i >= 0; --i)//区间从小往大,所以逆序 {
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][n-1]; }};

176 ms 67.1 MB

你可能感兴趣的文章
Linux调试工具
查看>>
新手学习嵌入式系统
查看>>
adroid
查看>>
Linux内核调试方法总结 一
查看>>
内核调试方法 二
查看>>
内核调试方法 三
查看>>
Linux程序调试
查看>>
调试过程
查看>>
GDB中应该知道的几个调试方法
查看>>
linux core文件
查看>>
用Eclipse和GDB构建ARM交叉编译和在线调试环境
查看>>
cfs 完全公平调度
查看>>
如何判断自己是否具有成为一名优秀程序员的潜质
查看>>
创业公司和求职者都应看的九个面试题
查看>>
内核的链接脚本文件vmlinux.lds.S
查看>>
Ubuntu下 rsync同步文件实例
查看>>
后端框架----Django(I)
查看>>
DEBUG下标志位对照表[来自搜索引擎]
查看>>
原码、反码、补码及使用补码的原因
查看>>
汇编指令: JO、JNO、JB、JNB、JE、JNE、JBE、JA、JS、
查看>>