【LeetCode 5.】 最长回文子串

一道题能否使用动态规划就在于判断最优结构是否是通过最优子结构推导得到?如果显然具备这个特性,那么就应该朝动态规划思考。如果令dp[i][j]表示串s[i:j+1]是否是回文子串,那么判断dp[i][j] 是否是回文子串,相当于判断s[i] 与 s[j] 是否相等 + dp[i+1][j-1] 是否是回文串。

1. 题目

2. 分析

这道题我写了一个小时才写出来,相比之前看答案写题是有进步的。估计这道题我这半个月都不会忘记了。一道题能否使用动态规划就在于判断最优结构是否是通过最优子结构推导得到?如果显然具备这个特性,那么就应该朝动态规划思考。

具体看一个样例:s="babad",判断这个字符串是否是最长回文子串,相当于判断aba是否是回文子串和b与d是否相等。

01234
babad

相当于判断最后一个字符和要判断子串的第一个字符是否相等,外加判断内部子串是否是回文子串。

123
aba

那么抽象一下,就可以得出:判断dp[i][j] 是否是回文子串,相当于判断s[i] 与 s[j] 是否相等 + dp[i+1][j-1] 是否为1。

3. 代码

class Solution:def longestPalindrome(self, s: str) -> str:dp = [[0] * len(s) for i in range(len(s))]for cur_length in range(1, len(s)+1):for i in range(0, len(s)):j = i + cur_length - 1 # 终点下标if j >= len(s): # 越界处理continueif j == i:dp[i][j] = 1continueif cur_length == 2: # 长度为2的区间if s[j] == s[i]:dp[i][j] = 1continueif s[j] == s[i] and dp[i+1][j-1]: # 如果起点和终点相同dp[i][j] = 1# print(dp)max_len = 0res = ""for i in range(len(s)):for j in range(len(s)):if dp[i][j] == 1:if j-i+1 > max_len:max_len = max(max_len, j-i+1)res = s[i:j+1]return res

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

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

相关文章

AI企业盈利与成本问题

一、AI技术成本超预期,初创公司财务压力凸显 近期,AI领域的一些初创公司正面临财务压力,外媒记者亚伦费尔南德斯认为这可能标志着AI热潮时期即将结束。自3月中旬以来,包括Inflection AI、Stability AI和Anthropic在内的几家公司均…

函数指针的使用是否必须需要加符号?

在C或C等编程语言中,函数指针是一种特殊的指针类型,它用来指向一个函数。使用函数指针时,通常不需要在函数名后面加 & 符号。函数指针的声明和使用通常遵循以下规则: 1.声明函数指针:声明一个函数指针时&#xff…

Python中的TXT文档处理:导出与读取

Python中的TXT文档处理:导出与读取 在数据处理和分析中,文本文件(尤其是TXT和CSV格式)经常被用作数据交换的标准格式。本文将详细探讨如何在Python中处理TXT文件,包括如何导出和读取TXT文档,以及与CSV格式…

可视化大屏:选了浅色系,结果悲剧了

某些时候,有些客户不听劝告,感觉深色系大屏过于压抑,就让用浅色系,结果浅色系投到大屏上,直接亮瞎了。 选择浅色系的可视化大屏可能会存在以下几个问题: 视觉疲劳: 浅色系的颜色相对较亮&…

MySQL的引擎InnoDB和MyISAM有什么区别

一、典型回答 InnoDB和MyISAM是MySQL中比较常用的两个执行引擎,MySQL在5.5之前版本默认存储引擎是MyISAM,5.5之后版本默认存储引擎是InnoDB,MyISAM适合查询以及插入为主的应用,InnoDB适合频繁修改以及涉及安全性较高的应用。 如果…

极限编程里最容易被忽略的实践

在前面的一篇文章里面我和大家聊过了极限编程的重要性,今天想和大家聊聊极限编程里面最简单但也往往最容易被忽略的实践——编码规范。 说到编码规范,每一个开发人员都非常熟悉,每一个团队也都有自己的编码规范。但实际的执行情况如何呢&…

深圳信用贷款之路:申请了10次都被拒!这三步帮你逆袭银行贷款!

贷款客户最头疼的就是明明查询了一堆资料,贷款还是办不下来!尤其是那些负债累累的,急需资金还月供和本金的朋友们,不是在贷款就是在贷款的路上,一个月申请了10次都被拒!去了好几家贷款机构,费用…

数据库开发-MySQL

前言 首先来了解一下什么是数据库。 数据库:英文为 DataBase,简称DB,它是存储和管理数据的仓库。 像我们日常访问的电商网站京东,企业内部的管理系统OA、ERP、CRM这类的系统,以及大家每天都会刷的头条、抖音类的app…

中科院推出的三大免费神器,值得焊死在你的电脑上!

紫东太初:强大的中文预训练语言模型平台 紫东太初是中科院推出的中文预训练语言模型平台,具备强大的自然语言处理能力,支持文本生成、分类和摘要等多种任务。 核心功能 文本生成:通过输入关键词或短语,生成相关的文…

文字游侠:一款全新AI写作模型,每天10分钟一键创作爆文!附渠道和玩法教程!

在当今快节奏的社会中,虽然传统的工作可以满足我们基本的物质需求,但许多人内心深处渴望的是更高层次的精神满足。这就像是我们常说的:“工资可以喂饱肚子,副业可以养活灵魂。”这并不是鼓励大家辞去日常工作,而是提倡…

美国铁路客运巨头Amtrak泄漏旅客数据,数据销毁 硬盘销毁 文件销毁

旅客的Guest Rewards常旅客积分账户的个人信息被大量窃取。 美国国家客运铁路公司(Amtrak)近日披露了一起数据泄露事件,旅客的Guest Rewards常旅客积分账户的个人信息被大量窃取。 根据Amtrak向马萨诸塞州提交的泄露通知,5月15日…

.net 6 api 修改URL为小写

我们创建的api项目,url是[Route(“[controller]”)],类似这样子定义的。我们的controller命名是大写字母开头的,显示在url很明显不是很好看(url不区分大小写)。转换方式: var builder WebApplication.Crea…

Simufact Additive仿真助力金属粘结剂喷射成型(MBJ)工业化

引 言 烧结过程中“设计”补偿变形的能力被视为是实现金属粘结剂喷射成型(MBJ)快速商业化的关键。针对烧结过程的仿真分析,Simufact Additive软件现已推出了MBJ仿真模块第三个版本,当前版本能够准确模拟烧结过程,预测…

Adb - No devices and/or emulators connected.

这条消息是在你尝试使用ADB(Android Debug Bridge)与Android设备或模拟器进行交互时出现的,但系统没有找到任何连接的设备或模拟器。ADB是Android SDK中的一个工具,它允许你与设备进行通信,以执行各种设备操作&#xf…

elementPlus渲染需要权限校验的图片

技术栈&#xff1a;elementPlusvue3 html部分&#xff1a; <el-image :style"{width:width,height:height}" ref"previewimg" :src"previewSrc"></el-image> js部分 /*** 预览图片* param {String} url [图片的地址]*/const showP…

理解计算机Cache

理解计算机Cache 如果我们仔细的查看芯片架构&#xff0c;就会发现里面都有缓存&#xff08; MCU 可能没有缓存&#xff09;&#xff0c;可见缓存的重要性。本文将详细的介绍缓存的基础知识。 1. 什么是缓存 首先考虑一种标量访问的情况。就像下面这段代码&#xff0c;它重复…

json中的dump用法和区别

使用python 3.7和python3.11测试 不使用dumps&#xff0c;json中的数据 import jsonjson_datatest.json data[{ip:2222,model:c://ddd/oo.onnx}] # updatedjson.dumps(data) # print(updated) with open(json_data,w) as file:json.dump(data,file,indent4) 使用dumps之后&am…

18V-120V降12V300m恒压WT5117

18V-120V降12V300m恒压WT5117 WT5117 是一款专为开关电源设计的集成了 150V 高电压 MOSFET 的 DC-DC 控制器。这个设备具备内置高压启动和自供电功能&#xff0c;能够满足快速启动及低能耗待机状态的需求。 WT5117 配备了自适应降频技术&#xff0c;以提升在低负载条件下的转换…

怎么做好现货白银交易?原来三点很重要......

要做好现货白银交易&#xff0c;投资者除了要掌握基本的分析和交易技巧&#xff0c;还有很重要的一点就是耐得住寂寞&#xff0c;学会空仓。一些投资者喜欢短线高频地进行交易&#xff0c;这样做赚的时候可能很快&#xff0c;但如果做不好&#xff0c;回撤也同样可能来得更迅猛…

vmware workstation下centos7屏幕切换及大小调整

虚拟机版本&#xff1a;vmware workstation15.5.2 操作系统版本&#xff1a;centos 7.9.2009 一 图形界面和命令行界面切换方法 在CentOS 7中&#xff0c;可以使用以下方法切换界面&#xff1a; 1 使用快捷键切换&#xff1a;按下Ctrl Alt F2&#xff08;或F3&#xff0…