代码随想录算法训练营Day 56| 动态规划part17 | 647. 回文子串、5. 最长回文子串、516.最长回文子序列

server/2024/10/16 2:28:14/

代码随想录算法训练营Day 56| 动态规划part17 | 647. 回文子串、5. 最长回文子串、516.最长回文子序列


文章目录

  • 代码随想录算法训练营Day 56| 动态规划part17 | 647. 回文子串、5. 最长回文子串、516.最长回文子序列
  • 647. 回文子串
    • 一、法一
  • 5. 最长回文子串
  • 516.最长回文子序列
    • 一、法一


647. 回文子串

题目链接

一、法一

class Solution(object):def countSubstrings(self, s):""":type s: str:rtype: int"""#布尔类型的dp[i][j]:表示区间范围[i,j] (注意是左闭右闭)的子串是否是回文子串,如果是dp[i][j]为true,否则为false。dp=[[False]*len(s) for _ in range(len(s))]res=0for i in range(len(s)-1,-1,-1):for j in range(i,len(s)):if s[i]==s[j]:if j-i<=1:res +=1dp[i][j]=Trueelif dp[i+1][j-1]:res +=1dp[i][j]=Truereturn res

5. 最长回文子串

题目链接

一、动态规划

class Solution(object):def longestPalindrome(self, s):""":type s: str:rtype: str"""# 同回文子串的思路,增加了判断长度的逻辑dp=[[False]*len(s) for _ in range(len(s))]maxlength=0left=0right=0for i in range(len(s)-1,-1,-1):for j in range(i,len(s)):if s[i]==s[j]:if j-i<=1:dp[i][j]=Trueelif dp[i+1][j-1]:dp[i][j]=Trueif dp[i][j] and j-i+1>maxlength:maxlength=j-i+1left=iright=jreturn s[left:right+1]

516.最长回文子序列

题目链接

一、法一

class Solution(object):def longestPalindromeSubseq(self, s):""":type s: str:rtype: int"""# dp[i][j]:表示s[i:j]中的最长回文子序列长度dp=[[0]*len(s) for _ in range(len(s))]# 首先要考虑当i 和j 相同的情况,从递推公式:dp[i][j] = dp[i + 1][j - 1] + 2; 可以看出 递推公式是计算不到 i 和j相同时候的情况。所以手动初始化对角线for i in range(len(s)):dp[i][i]=1for i in range(len(s)-1,-1,-1):for j in range(i+1,len(s)):if s[i]==s[j]:dp[i][j]=dp[i+1][j-1]+2else:dp[i][j]=max(dp[i+1][j],dp[i][j-1])return dp[0][-1]

http://www.ppmy.cn/server/46022.html

相关文章

单片机的自动化编程语言:深度探索与未来展望

单片机的自动化编程语言&#xff1a;深度探索与未来展望 单片机作为现代电子设备的核心控制单元&#xff0c;其自动化编程语言的发展与应用&#xff0c;对提升设备性能、简化编程流程具有重大意义。本文将从四个方面、五个方面、六个方面和七个方面&#xff0c;对单片机的自动…

AI新纪元:OpenAI GPT-4o模型发布,开启智能交互革命!

目录 前言一、 总体概述二、能力探索1、文字生成图片2、3D 物体合成3、音频提炼总结4、视频讲座总结 三、 模型评估1、文本评估2、音频ASR评估3、音频翻译性能4、M3Exam零样本结果5、视觉理解评估 四、 OpenAI API使用1、文本聊天2、图像解析3、上传 Base 64 编码图像4、多幅图…

系统安全及其应用

系统安全及其应用 部署服务器的初始化步骤&#xff1a; 1、配置IP地址&#xff0c;网关&#xff0c;DNS解析 2、安装源&#xff0c;外网&#xff08;在线即可yum&#xff09; 内网&#xff08;只能用源码包编译安装&#xff09; 3、磁盘分区 lvm raid 4、系统权限配置和基础安…

fpga系列 HDL: 05 阻塞赋值(=)与非阻塞赋值(<=)

在Verilog硬件描述语言&#xff08;HDL&#xff09;中&#xff0c;信号的赋值方式主要分为两种&#xff1a;连续赋值和过程赋值。每种赋值方式有其独特的用途和语法&#xff0c;并适用于不同类型的电路描述。 1. 连续赋值&#xff08;Continuous Assignment,assign 和&#xf…

pycharm终端无法使用activate激活conda环境

文章目录 1.存在问题2.解决方案&#xff08;配置系统环境变量&#xff09;3.测试成功与否 1.存在问题 pycharm终端没法直接使用activate指令启动base环境 2.解决方案&#xff08;配置系统环境变量&#xff09; 1.winr输入sysdm.cpl 2.点击高级–环境变量 3.找到系统变量下…

ArcGIS基本操作-常用的空间分析工具梳理

ArcGIS空间分析工具使用 如果我们在进行科研时需要将研究区地形地貌作为一项指标的话&#xff0c;将可能遇到坡度、坡向、地形起伏度、地表切割深度等因子计算&#xff0c;下面我向大家介绍如何利于ArcGIS软件的空间分析工具&#xff0c;基于高程数据&#xff0c;分析重庆市的…

香橙派开发板测评:探索创新的嵌入式解决方案

嵌入式系统在当今科技领域中扮演着越来越重要的角色&#xff0c;而开发板作为嵌入式系统设计的核心工具&#xff0c;不断推动着创新的边界。在众多开发板中&#xff0c;香橙派&#xff08;Orange Pi&#xff09;系列以其出色的性能和丰富的接口&#xff0c;备受开发者的青睐。本…

华为设备RIP基础路由实验

华为设备RIP基础路由实验 实验拓扑&#xff1a; RIP&#xff1a;距离矢量的动态路由&#xff0c;路由通信有方向&#xff0c;度量值metric取值范围&#xff08;1-16&#xff09;16表示目标主机不可达。 路由的版本分为&#xff1a;RIPV1&#xff08;广播通信目标地址是255.255…