代码随想录算法训练营 | 647. 回文子串,516.最长回文子序列

news/2024/10/19 20:35:27

647. 回文子串
题目链接:647. 回文子串
文档讲解︰代码随想录(programmercarl.com)
视频讲解︰回文子串
日期:2024-10-19

想法:本题精髓在于dp[i][j]表示的是s[i,j]这个子字符串是不是回文的,是Boolean类型,s[i]s[j]不等时,肯定不回文;s[i]s[j]相等时,开始看ij的大小,ij大小相等那么表示单个字符的情况,回文,大小差距为1,表示的是像“aa”这种情况,回文;大小差距大于1了,就得看这两个字符中间的子串是不是回文的了即看dp[i + 1][j - 1]是不是为true;初始化当然起始全部都是false;遍历顺序还有要注意由于有dp[i + 1][j - 1],所以列得从下往上走,行还是继续从左往右就行了。
Java代码如下:

class Solution {public int countSubstrings(String s) {char[] chars = s.toCharArray();int res = 0;int len = chars.length;boolean[][] dp = new boolean[len][len];for(int i = len - 1; i >= 0; i--) {for(int j = i; j < len; j++) {if(chars[i] == chars[j]) {if(j - i <= 1) {dp[i][j] = true;res++;}else if(dp[i + 1][j - 1]){dp[i][j] = true;res++;}}}}return res;}
}

516.最长回文子序列
题目链接:516.最长回文子序列
文档讲解︰[代码随想录(programmercarl.com)](https://programmercarl.com/0516.最长回文子序列.html)
视频讲解︰最长回文子序列
日期:2024-10-19

想法:dp[i][j]表示s区间[i,j]中得最长子序列长度,跟上面字串是不一样的;s[i]s[j]相等,原长度dp[i + 1][j - 1]加2,不相等,就看是不要前一个长还是不要后一个长,即dp[i + 1][j]dp[i][j - 1];初始化显然dp[i][i]区间只有一个字符时长度为1;遍历顺序跟上面一样。
Java代码如下:

class Solution {public int longestPalindromeSubseq(String s) {char[] chars = s.toCharArray();int len = chars.length;int[][] dp = new int[len][len];for(int i = 0; i < len; i++) {dp[i][i] = 1;}for(int i = len - 1; i >= 0; i--) {for(int j = i + 1; j < len; j++) {if(chars[i] == chars[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];}
}

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

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

相关文章

从需求分析、产品设计到部署交付各阶段说明

需求分析、产品设计到部署交付各阶段图解 下面用一张图来表示产品设计到部署交付阶段:研发流程各环节:需求分析 产品设计 UI设计 开发和测试 部署交付团队划分 按职能划分团队产品团队 后端开发团队 UI 设计团队 前端开发团队 运维和测试团队 移动开发团队 按职能来划分团队,…

织梦网站搬家修改配置

备份原网站数据在进行任何操作之前,请确保对原网站的数据和文件进行全面备份,包括数据库和所有文件。导出数据库登录到原服务器的数据库管理工具(如phpMyAdmin)。 选择织梦网站对应的数据库,点击导出,选择“快速”或“自定义”模式,然后下载数据库文件。上传文件到新服务…

数据库修改网站后台登录?

要修改网站后台登录相关的数据库设置,通常涉及到以下几个步骤:确定数据库类型:确定你使用的数据库类型(如 MySQL, PostgreSQL, SQLite 等)。备份数据库:在进行任何修改之前,确保对当前数据库进行备份,以防出现意外情况。访问数据库:使用数据库管理工具(如 phpMyAdmin…

Python算法题常用函数记忆清单

系统设计题&模拟题链接:https://leetcode.cn/problem-list/design/字符串操作 splite 按指定分隔符转成 list str_list= text.split() # 默认按空格分割 (函数写在后面,用 . 来调用) str_list= text.split(",") # 按逗号分割 strip()去除两边的空格trimmed…

USB协议详解第14讲(USB传输-同步传输及事务组成)

1.前言 前面讲过USB一个传输由多个事务组成,一个事务由多个包实体组成。传输又分为控制传输、同步传输、批量传输、中断传输四种,上一节我们讲了控制传输细节及事务组成,今天我们主要讲解同步传输及事务组成。 同步传输用在数据量大、对实时性要求高的场合,例如音频设备、视…

30天自制操作系统(一)启动区

一、启动区ORG 0x7C00JMP entryDB 0x90DB "HELLOIPL"DW 512DB 1DW 1DB 2DW 224DW 2880DB 0xf0DW 9DW 18DW 2DD 0DD 2880DB 0,0,0x29DD 0xffffffffDB "HELLO-OS "DB "FAT12 "RESB 18entry:MOV AX, 0MOV SS, AXMOV SP,…

USB协议详解第13讲(USB传输-控制传输及事务组成)

1.前言 前面讲过USB一个传输由多个事务组成,一个事务由多个包实体组成。传输又分为控制传输、同步传输、批量传输、中断传输四种,今天我们主要讲解控制传输三个阶段及事务组成。 控制传输是一种特殊的传输方式,且传输过程相对复杂一些,但十分重要。当USB设备初次连接主机时…

图片隐写的几大思考方向

一、看文件类型 特别是gif文件,可以用stegsolve的Frame Browser逐帧查找看有无flag线索题目链接:https://buuoj.cn/challenges#/金三胖 二、想这几个方向 (1)Stegsolve方向 对应方向:LSB、滤镜查找 ①LSB 1.选Analyse/Data Extract2.勾选以下设置3.点Preview,发现里面出现…