leetcode-5. 最长回文子串

news/2024/9/22 10:57:04/

题目描述

给你一个字符串 s,找到 s 中最长的回文子串。

如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。

示例 1:

输入:s = "babad"
输出:"bab"
解释:"aba" 同样是符合题意的答案。

示例 2:

输入:s = "cbbd"
输出:"bb"

思路 【参考官方题解:动态规划】

class Solution(object):def longestPalindrome(self, s):""":type s: str:rtype: str"""n = len(s)if n < 2:return smax_len = 1 # 记录最长的回文字串的长度begin = 0  # 记录开始位置,到时候一加就可以找出字符串# ababadp = [[False] * n for _ in range(n)]  # 用于记录是否是回文字串for i in range(n):dp[i][i] = True  # 自己到自己肯定是for L in range(2, n + 1):  # 这个是间隔,从2开始,for i in range(n):j = i + L - 1  # -1是从相邻的两个位置比较,【0,1】【1,2】【2,3】if j >= n:    # 超出字串串本身的长度,步子太大了,就跳出去breakif s[i] != s[j]:    # 如果不相等,返回falsedp[i][j] = Falseelse:                # 如果相等,有两种情况if j - i < 3:    # 如果间隔中就一个或者批次挨着dp[i][j] = True  # 直接返回true就行else:                # 如果间隔中有2个及以上的字符dp[i][j] = dp[i + 1][j - 1]   # 就需要看dp[i+1][j-1]if dp[i][j] and j - i + 1 > max_len:  # 如果是回文字串,并且长度大于最大长度max_len = j - i + 1              # 则进行更新begin = ireturn s[begin:begin + max_len]  if __name__ == '__main__':s = Solution()print(s.longestPalindrome('ababa'))


http://www.ppmy.cn/news/1458011.html

相关文章

本地加载hugging face模型:Bert

找了个hf的镜像站&#xff0c;把config.json和pytorch_model.bin两个文件进行下载下来&#xff0c;模型文件uncased_L-12_H-768_A-12.zip下载下来先。 解压模型文件压缩包&#xff0c;把前面下载的两个文件也放进去&#xff0c;总共6个文件。这个文件夹就是代码 tokenizer Be…

北交所佣金费率标准是多少?北交所相关信息科普

北交所的佣金费率并非固定不变&#xff0c;而是可以根据投资者的需求和证券公司的政策进行调整。目前北交所的佣金费率最低是万分之二。 一般来说&#xff0c;北交所的佣金费率默认在万分之三左右&#xff0c;但这不是固定的费率。根据证券公司的不同&#xff0c;佣金费率可以…

【C++语言】多态

多态&#xff08;Polymorphism&#xff09;是面向对象编程中的一个重要概念&#xff0c;它允许不同类的对象对同一消息作出不同的响应。在C中&#xff0c;多态性通过虚函数&#xff08;Virtual Function&#xff09;和动态绑定&#xff08;Dynamic Binding&#xff09;来实现。…

Elastic 通过 AI 驱动的安全分析改变 SIEM 游戏

作者&#xff1a;Santosh Krishnan, Jennifer Ellard 借助由搜索 AI 提供支持的新攻击发现功能&#xff0c;优先考虑攻击&#xff0c;而不是警报。 传统的安全信息与事件管理系统&#xff08;SIEM&#xff09;在很大程度上依赖屏幕背后的人类才能取得成功。警报、仪表盘、威胁…

centos学习- ps命令详解-进程监控的利器

ps命令详解&#xff1a;Linux进程监控的利器 在Linux系统管理中&#xff0c;进程监控是一个至关重要的环节。ps命令是Linux系统中一个功能强大的进程查看工具&#xff0c;通过它可以获取当前系统中所有进程的快照信息&#xff0c;并深入了解各个进程的详细信息。结合其各种选项…

解析Redis集群的优势

Redis是一个高性能的键值存储数据库&#xff0c;被广泛应用于各种Web应用和分布式系统中。 随着数据量的增加和访问负载的提升&#xff0c;单机Redis已经无法满足需求&#xff0c;因此搭建Redis集群成为一种常见的解决方案。 本文将深入探讨Redis集群的好处&#xff0c;帮助读…

男士内裤什么品牌质量好?男士内裤选购指南攻略分享

有很多小伙伴认为男士内裤只是穿在里面的&#xff0c;只要能穿就不讲究了。但实际上选择一些质量不好的男士内裤会让穿着舒适性十分不佳&#xff0c;同时还会因为不具备抗菌效果而滋生细菌&#xff0c;导致出现健康问题。 最近我也是深入研究了一番关于男士内裤&#xff0c;今天…

java驱动bat脚本执行mysql备份然后自定义mysql备份名

我有个需求按钮触发bat脚本备份mysql,但是怕备份太多找不到最终的&#xff0c;所以可以自定义脚本备份的mysql名称 直接上干货 首先展示java代码 public static void main(String[] args) {// 备份文件名作为参数传入String backupFileName "C:\\Users\\Administrator\…