[C国演义] 第二十章

news2024/11/26 18:32:45

第二十章

  • 最长回文子序列
  • 让字符串成为回文串的最少插入次数

最长回文子序列

力扣链接

  • 单个数组讨论子序列 ⇒ dp[i] -- 以nums[i]为结尾的所有子序列中, 回文子序列的最长长度. 然后讨论 最后一个位置的归属情况
    但 又要满足 回文结构 ⇒ 二维dp ⇒ dp[i][j] -- 区间[i, j]内, 回文子序列的最长长度

  • 状态转移方程

  • 遍历顺序

  • 初始化

    都初始化为 0不做初始化

  • 返回值 – 返回 dp[0][n-1]

class Solution {
public:
    int longestPalindromeSubseq(string s) 
    {
        int n = s.size();

        vector<vector<int>> dp(n, vector<int>(n));

        for(int i = n-1; i >= 0; i--)
        {
            for(int j = i; j < n; j++)
            {
                if(s[i] == s[j])
                {
                    if(i == j)   dp[i][j] = 1;
                    else if(i+1 == j)  dp[i][j] = 2;
                    else  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];
    }
};


让字符串成为回文串的最少插入次数

力扣链接

  • 单个数组讨论子序列 ⇒ dp[i] -- 使以 nums[i] 结尾的区间内的字符串成为回文子串的最少插入次数. 然后讨论 最后一个位置的归属情况
    但 又要满足 回文结构 ⇒ 二维dp ⇒ dp[i][j] -- 使区间[i, j]内的字符串成为回文子序列的最少插入次数

  • 转态转移方程 : 先对区间 [i, j]的字符串进行分析

  • 遍历顺序

  • 初始化 – 都初始化为 0

  • 返回结果 – 返回 dp[0][n-1]

class Solution {
public:
    int minInsertions(string s) 
    {
        int n = s.size();

        vector<vector<int>> dp(n, vector<int>(n));

        for(int i = n-1; i >= 0; i--)
        {
            for(int j = i; j < n; j++)
            {
                if(s[i] == s[j])
                {
                    if(i == j)  dp[i][j] = 0;
                    else if(i+1 == j)  dp[i][j] = 0;
                    else dp[i][j] = dp[i+1][j-1];
                }
                else
                {
                    dp[i][j] = min(dp[i+1][j], dp[i][j-1]) + 1;
                }
            }
        }

        return  dp[0][n-1];
    }
};


给你的机会要牢牢把握住, 捏在手心里, 不要让你在意的人难过 !
机会都是留给有准备的人 ! — — 雨 子

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

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

相关文章

类加载器(classloader)

作者&#xff1a;ZeaTalk 链接&#xff1a;https://www.zhihu.com/question/49667892/answer/690161827 来源&#xff1a;知乎 著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。 类加载器&#xff08;classloader&#xff09; 先从类加载器…

【数据结构】直接插入排序

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前正在学习c和算法 ✈️专栏&#xff1a;数据结构 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章有啥瑕疵 希望大佬指点一二 如果文章对你有帮助…

第八章:枚举

系列文章目录 文章目录 系列文章目录前言一、枚举总结 前言 类可以作为常量使用。 一、枚举 枚举是一组常量的集合。可以这里理解&#xff1a; 枚举属于一种特殊的类&#xff0c; 里面只包含一组有限的特定的对象。 枚举的实现方式自定义类实现枚举使用 enum 关键字实现枚举…

MySQL 分库分表与 TiDB(平凯数据库),如何选择?

随着互联网行业的飞速发展&#xff0c;数据量不断增长&#xff0c;传统的关系型数据库已经无法满足大规模数据处理的需求。为了解决这一问题&#xff0c;分库分表和分布式数据库应运而生。本文将对比分析 MySQL 分库分表和 TiDB 这两种解决方案&#xff0c;帮助大家更好地选择适…

自动化测试和手工测试有什么不同以及自动化测试和手工测试应用范围的对比

一、初识自动化测试 如果以前没有做过自动化测试&#xff0c;那么就不了解自动化测试&#xff0c;可能会觉得自动化测试比较神秘&#xff0c;但是&#xff0c;我们在日常的计算机操作中&#xff0c;可能会碰到一些自动化处理的过程&#xff0c;这些过程和自动化测试比较接近。 …

Mysql修改事务隔离级别及与spring隔离级别关系

Mysql如何修改事务隔离级别 1.查询事务级别 1.1查询全局事务隔离级别 select global.tx_isolation; 1.2 查询当前会话事务隔离级别 select session.tx_isolation; 2.修改事务隔离级别 2.1 修改全局事务隔离级别 set global transaction isolation level read committed;…

Kafka 的应用场景

Kafka 是一个开源的分布式流式平台&#xff0c;它可以处理大量的实时数据&#xff0c;并提供高吞吐量&#xff0c;低延迟&#xff0c;高可靠性和高可扩展性。 Kafka 最初是为分布式系统中海量日志处理而设计的。它可以通过持久化功能将消息保存到磁盘&#xff0c;并让消费者按…

景联文科技入选量子位智库《中国AIGC数据标注产业全景报告》数据标注行业代表机构TOP20

量子位智库《中国AIGC数据标注产业全景报告》中指出&#xff0c;数据标注处于重新洗牌时期&#xff0c;更高质量、专业化的数据标注成为刚需。未来五年&#xff0c;国内AI基础数据服务将达到百亿规模&#xff0c;年复合增长率在27%左右。 基于数据基础设施建设、大模型/AI技术理…

areca backup备份工具安装与使用

由于FTP数据备份执行&#xff0c;需要人工操作执行&#xff0c;不满足业务需求&#xff0c;发现此工具结合ftp联动可以定时任务进行备份 获取地址 https://nchc.dl.sourceforge.net/project/areca/areca-stable/areca-7.5/areca-7.5-windows-jre64-setup.exe 前提条件 注意…

关闭RecyclerView惯性滚动,以及多个RecyclerView在嵌套滚动中的注意事项

前言&#xff1a; 当前RecyclerView 下拉到顶部 或者 上拉到底部时&#xff0c;虽然滚动列表停止了&#xff0c;但惯性任务并没有结束&#xff0c;一些特殊需求可能受到影响&#xff0c;需要手动停止。 1. RecyclerView源码 调用 rv.stopScroll() 停止&#xff1b; 2. Recycl…

数据库sql语句设置外键

当我们需要在数据库表之间建立关联关系时&#xff0c;可以使用外键&#xff08;Foreign Key&#xff09;来实现。在 SQL 中&#xff0c;外键可以用来保持数据的完整性&#xff0c;并帮助我们更有效地管理数据。以下是设置外键的步骤&#xff1a; 1.在创建表时&#xff0c;需要…

公益SRC实战|SQL注入漏洞攻略

目录 一、信息收集 二、实战演示 三、使用sqlmap进行验证 四、总结 一、信息收集 1.查找带有ID传参的网站&#xff08;可以查找sql注入漏洞&#xff09; inurl:asp idxx 2.查找网站后台&#xff08;多数有登陆框&#xff0c;可以查找弱口令&#xff0c;暴力破解等漏洞&…

7个免费的优质图标素材网站,设计师必备!

对于交互设计师和产品经理来说&#xff0c;一套漂亮易用的图标可以算是提高效率的法宝&#xff0c;自己导出一套标准化的图标是一个巨大的工程。如何找到一个既美观又实用又能快速重用的图标&#xff1f;别慌&#xff0c;今天我们整理了7个价值高又好用的图标素材网站&#xff…

wx.canvasToTempFilePath生成图片保存到相册

微信小程序保存当前画布指定区域的内容导出生成指定大小的图片&#xff0c;记录一下 api&#xff1a;wx.canvasToTempFilePath 效果&#xff1a; 代码&#xff1a;wxml <canvas style"width: {{screenWidth}}px; height: {{canvasHeight}}px;" canvas-id"my…

芯科科技推出新的8位MCU系列产品,扩展其强大的MCU平台

新的BB5系列为简单应用提供更多开发选择 中国&#xff0c;北京 - 2023年11月14日 – 致力于以安全、智能无线连接技术&#xff0c;建立更互联世界的全球领导厂商Silicon Labs&#xff08;亦称“芯科科技”&#xff0c;NASDAQ&#xff1a;SLAB&#xff09;&#xff0c;今日宣布…

浅析SVPWM调制技术

目录 收起 目录 目录 一、SVPWM基本原理 1.从三相电机运行原理到SVPWM调制技术 2.SVPWM调制的实现方法 3.合成参考电压矢量的方法 &#xff08;abc->αβ坐标变换&#xff09; 4.基本电压矢量时间的分配 5.基本电压矢量顺序的分配 6.扇区判断 二、仿真验证 1.操…

什么是美颜SDK?美颜SDK对比评测

美颜SDK在视频直播中发挥着越来越重要的作用。为了实现实时、高质量的美颜效果&#xff0c;各种视频直播美颜SDK应运而生。本文将对这些技术进行深入解析与比较。 一、技术原理解析 深度学习技术通过大量的训练数据学习人脸特征&#xff0c;从而实现更为自然的美颜效果。传统…

PowerPoint技巧:如何将一张图片同时加到全部幻灯片里?

想把一张图片加到PPT每一张幻灯片的同一个位置&#xff0c;如果一张一张的添加就太耗时间了&#xff0c;一起来看看如何利用母版快速设置同时添加吧。 首先&#xff0c;打开需要编辑的PPT&#xff0c;在菜单栏依次点击【视图】→【幻灯片母版】&#xff1b; 打开母版后&#x…

2023年【安全员-C证】考试题库及安全员-C证考试总结

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 安全员-C证考试题库根据新安全员-C证考试大纲要求&#xff0c;安全生产模拟考试一点通将安全员-C证模拟考试试题进行汇编&#xff0c;组成一套安全员-C证全真模拟考试试题&#xff0c;学员可通过安全员-C证考试总结全…

【App测试】adb三大连接方式-夜神模拟器+真机+android真机(详细步骤)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 adb连接安卓模拟器…