[LeetCode]516. 最长回文子序列[记忆化搜索解法详解]

news2024/12/28 5:16:34

最长回文子序列

LeetCode 原题链接

题目

给你一个字符串 `s` ,找出其中最长的回文子序列,并返回该序列的长度。

子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。

示例 1

输入:s = “bbbab”
输出:4
解释:一个可能的最长回文子序列为 “bbbb” 。

示例 2:

输入:s = “cbbd”
输出:2
解释:一个可能的最长回文子序列为 “bb” 。

提示

  • 1 <= s.length <= 1000
  • s 仅由小写英文字母组成

状态表示

  • dp[i][j]表示从索引i~j区间的字符的最大回文子串。

状态转移方程

s[i]!=s[j]

  • dfs[i][j] = max(dfs[i+1][j], dfs[i][j-1])

s[i]==s[j]

  • dfs[i][j] = dfs[i+1][j-1]+2

推导过程

在这里插入图片描述

LeetCode 代码

class Solution {
public:
    string st;
    vector<vector<int>> memo;
    int longestPalindromeSubseq(string s) {
        st = s;
        int n = s.size();
        memo.resize(n, vector<int>(n, -1));
        return dfs(0, n-1);
    }
    inline int dfs(int i, int j) {
        if (i > j) return 0;
        if (i == j) return 1;
        int &res = memo[i][j];
        if (res != -1) return res;
        if (st[i] == st[j]) {
            return res = 2 + dfs(i+1, j-1);
        } else {
            return res = max(dfs(i+1, j), dfs(i, j-1));
        }
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1553282.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

苹果应用商店上架工具的最新趋势与未来发展展望

摘要 移动应用app上架是开发者关注的重要环节&#xff0c;但常常会面临审核不通过等问题。为帮助开发者顺利完成上架工作&#xff0c;各种辅助工具应运而生。本文探讨移动应用app上架原理、常见辅助工具功能及其作用&#xff0c;最终指出合理使用工具的重要性。 引言 移动应…

YonBuilder移动开发基础——友开发App与自定义Loader

概述 在使用 YonBuilder移动开发 技术进行 App 项目开发时&#xff0c;我们需要使用YonStuido开发工具的 WIFI同步 功能进行项目代码的真机调试&#xff0c;友开发App 与 自定义Loader 都支持 WIFI同步 功能&#xff0c;那么两款 App 软件到底有什么区别&#xff0c;在开发过程…

C语言 | qsort()函数使用

目录&#xff1a; 1.qsort介绍 2.使⽤qsort函数 排序 整型数据 3.使⽤qsort函数 排序 结构体数据 4. qsort函数的模拟实现冒泡排序 qsort()函数 是一个 C语言编译器函数库自带的排序函数&#xff0c; 它可以对指定数组&#xff08;包括字符串&#xff0c;二维数组&#x…

STM32CubeMX学习笔记28---FreeRTOS软件定时器

一、软件定时器简介 1 、基本概念 定时器&#xff0c;是指从指定的时刻开始&#xff0c;经过一个指定时间&#xff0c;然后触发一个超时事件&#xff0c;用户 可以自定义定时器的周期与频率。类似生活中的闹钟&#xff0c;我们可以设置闹钟每天什么时候响&#xff0c; 还能设置…

【车体坐标系与世界坐标系的互相转换】能够一眼看懂的知识点!!!

本文讲解车体坐标系与世界坐标系互相转换的数学推导&#xff0c;如下图所示 将waypoint坐标从车体坐标系转换到世界坐标系&#xff1a; [ x ′ y ′ z ′ ] [ x y z ] [ cos ⁡ θ sin ⁡ θ 0 − sin ⁡ θ cos ⁡ θ 0 0 0 1 ] \left[\begin{array}{lll} x^{\prime} & …

产品经理的自我修养

点击下载《产品经理的自我修养》 1. 前言 在产品领域取得成功的关键在于持续的激情。只有保持热情不减,我们才能克服各种困难,打造出卓越的产品。 如果你真心渴望追求产品之路,我强烈建议你立即行动起来,亲自参与实际的产品创作。无论是建立一个网站、创建一个社群,还是…

axios发送get请求但参数中有数组导致请求路径多出了“[]“的处理办法

一、情况 使用axios发送get请求携带了数组参数时&#xff0c;请求路径中就会多出[]字符&#xff0c;而在后端也会报错 二、解决办法 1、安装qs 当前项目的命令行中安装 npm install qs2、引入qs库(使用qs库来将参数对象转换为字符串) // 全局 import qs from qs Vue.proto…

WPF中获取TreeView以及ListView获取其本身滚动条进行滚动

实现自行调节scoll滚动的位置(可相应获取任何控件中的内部滚动条) TreeView:TreeViewAutomationPeer lvap new TreeViewAutomationPeer(treeView); var svap lvap.GetPattern(PatternInterface.Scroll) as ScrollViewerAutomationPeer; var scroll svap.Owner as ScrollVie…

免费翻译pdf格式论文

进入谷歌翻译网址https://translate.google.com/?slauto&tlzh-CN&opdocs 将需要全文翻译的pdf放进去 选择英文到中文&#xff0c;然后点击翻译 可以选择打开译文或者下载译文&#xff0c;下载译文会下载到电脑上&#xff0c;打开译文会在浏览器打开。

华为数通方向HCIP-DataCom H12-821题库(多选题:221-240)

第221题 下面哪些路由协议支持通过命令配置发布缺省路由? A、OSPF B、IGMP C、ISIS D、BGP 【正确答案】ACD 【答案解析】 第222题 在route-policy中,能够用于apply子句的BGP属性有哪些? A、Local-Preference B. AS_Path C、Tag D、MED 【正确答案】ABD 【答案解析】 第22…

机器学习之决策树现成的模型使用

目录 须知 DecisionTreeClassifier sklearn.tree.plot_tree cost_complexity_pruning_path(X_train, y_train) CART分类树算法 基尼指数 分类树的构建思想 对于离散的数据 对于连续值 剪枝策略 剪枝是什么 剪枝的分类 预剪枝 后剪枝 后剪枝策略体现之威斯康辛州乳…

Redis 特性,为什么要用Redis,Redis到底是多线程还是单线程

一、Redis介绍 Redis&#xff08;Remote Dictionary Server )&#xff0c;即远程字典服务&#xff0c;是一个开源的&#xff0c;使用C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库&#xff0c;并提供多种语言的API。 二、特性(为什么要用Redis&#x…

Docker 夺命连环 15 问

目录 什么是Docker&#xff1f; Docker的应用场景有哪些&#xff1f; Docker的优点有哪些&#xff1f; Docker与虚拟机的区别是什么&#xff1f; Docker的三大核心是什么&#xff1f; 如何快速安装Docker&#xff1f; 如何修改Docker的存储位置&#xff1f; Docker镜像常…

护眼大路灯智商税吗?五款最佳护眼落地灯分享!

大路灯能够提供更加舒适健康的光线&#xff0c;而且大路灯还提供许多能够提高使用便捷度的大路灯&#xff0c;尤其是对于学生党以及上班族来说&#xff0c;大路灯是一款很好的用眼照明小帮手。然而&#xff0c;对于护眼大路灯智商税吗这个问题&#xff0c;很冥想不是&#xff0…

四川易点慧电子商务抖音小店:前景无忧,创新引领未来零售风潮

在数字经济高速发展的今天&#xff0c;电子商务已成为推动经济增长的重要引擎。四川易点慧电子商务有限公司紧跟时代步伐&#xff0c;积极布局抖音小店&#xff0c;展现出强劲的发展势头和广阔的前景。 抖音小店作为抖音平台上的重要商业生态&#xff0c;凭借其庞大的用户群体和…

jira安装与配置

1. 环境准备 环境要求 1) JDK1.8以上环境配置 2) Mysql数据库5.7.13 3) Jira版本7及破解包 1.1 JDK1.8安装配置 1) 首先下载 JDK1.8&#xff0c; - 网址&#xff1a;https://www.oracle.com/cn/java/technologies/javase/javase-jdk8-downloads.html - windows64 版&am…

基于Spring Boot 3 + Spring Security6 + JWT + Redis实现登录、token身份认证

基于Spring Boot3实现Spring Security6 JWT Redis实现登录、token身份认证。 用户从数据库中获取。使用RESTFul风格的APi进行登录。使用JWT生成token。使用Redis进行登录过期判断。所有的工具类和数据结构在源码中都有。 系列文章指路&#x1f449; 系列文章-基于Vue3创建前端…

Vidmore Video Fix for Mac 视频修复工具

Vidmore Video Fix for Mac是一款功能强大且易于使用的视频修复工具&#xff0c;专为Mac用户设计。它凭借先进的视频修复技术&#xff0c;能够帮助用户解决各种视频问题&#xff0c;如视频文件损坏、无法播放、格式不支持等。 软件下载&#xff1a;Vidmore Video Fix for Mac v…

DevSecOps平台架构系列-微软云Azure DevSecOps平台架构

目录 一、概述 二、Azure DevOps和黄金管道 2.1 概述 2.2 Azure DevOps架构说明 2.2.1 架构及管道流程图 2.2.2 架构内容 2.2.2.1 Azure Boards 2.2.2.2 Azure Repos 2.2.2.3 Azure Test Plans 2.2.2.4 Azure Pipelines 2.2.2.5 Azure Application Insights 2.2.2.6…

5、双亲委派机制

双亲委派机制指的是&#xff1a;当一个类加载器接收到加载类的任务时&#xff0c;会自底向上查找是否加载过&#xff0c; 再由顶向下进行加载。 详细流程&#xff1a; 每个类加载器都有一个父类加载器。父类加载器的关系如下&#xff0c;启动类加载器没有父类加载器&#xff1…