当前位置:网站首页>【力扣】516. 最长回文子序列
【力扣】516. 最长回文子序列
2022-08-09 14:58:00 【漆黑丶】
题目:
给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度。
子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。
示例 1:
输入:s = “bbbab”
输出:4
解释:一个可能的最长回文子序列为 “bbbb” 。
示例 2:
输入:s = “cbbd”
输出:2
解释:一个可能的最长回文子序列为 “bb” 。
提示:
1 <= s.length <= 1000
s 仅由小写英文字母组成
答案:
class Solution {
public int longestPalindromeSubseq(String s) {
//二维动态规划
//i从后往前遍历,j从i+1往后遍历
//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]
int len = s.length();
if(len == 1) return 1;
if(len == 0) return 0;
int[][] dp = new int[len][len];
for(int i = len - 1; i >= 0; i--){
dp[i][i] = 1;
for(int j = i + 1; j < len; j++){
if(s.charAt(i) == s.charAt(j)){
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][len - 1];
}
}
边栏推荐
猜你喜欢
Stetman读peper小记:Defense-Resistant Backdoor Attacks Against DeepNeural Networks in Outsourced Cloud
【深度学习】梯度下降与梯度爆炸(十)
PatchEmbed代码讲解记录
AsyncTask 串行还是并行
Postgraduate Work Weekly
交叉编译 Crypto++
MouStart指纹浏览器怎么防关联
【工具使用】Keil5软件使用-进阶工程配置篇
Xgboost系列-XGB实际参数调优指南附源码
hugging face tutorial - Chinese translation - share a model
随机推荐
解决pyqt5 DLL load failed: 找不到指定的程序的问题
【研究生工作周报】(第十二周)
hugging face tutorial - Chinese translation - fine-tuning a pre-trained model
【学习笔记】win10报0xc0000221错误无法开机
【深度学习】全面理解支持向量机SVM(七)
单例模式-五种方式 不要被克隆
微信小程序禁止页面左右滑动
如何选择可靠的亚马逊代运营
封装仿支付宝密码输入效果
Postgraduate Work Weekly (Week 13)
MouStart指纹浏览器怎么防关联
抱抱脸(hugging face)教程-中文翻译-分享一个模型
PatchEmbed代码讲解记录
【深度学习】模型选择、欠/过拟合和感受野(三)
【知识分享】知识链路-Modbus通信知识链路
【Postgraduate Work Weekly】
抱抱脸(hugging face)教程-中文翻译-QA问答(Question Answering)
crontab失效怎么解决
smote 采样
抱抱脸(hugging face)教程-中文翻译-创建一个自定义架构