首页 > 编程语言 >python动态规划求解最长回文子串

python动态规划求解最长回文子串

时间:2023-12-18 12:03:36浏览次数:30  
标签:子串 python len range ans 字符串 dp 回文


回文是什么,回文是正着读和反着读都是一样的字符叫着回文。

 如 ‘aba’,‘aa’,‘b’,这些都是回文

python动态规划求解最长回文子串_开发语言

class Solution:
    def longestPalindrome(self,s: str) -> str:
        n = len(s)
        dp = [[False] * n for _ in range(n)]
        ans = ""
        for l in range(n):#l代表1个字符串,2个字符串,3个字符串  
            for i in range(n):
                j = i+l
                if j >= len(s):
                    break
                if l == 0:
                    dp[i][j] = True
                elif l ==1:
                    dp[i][j] = (s[i]==s[j])
                else:
                    dp[i][j] = (dp[i+1][j-1] and s[i]==s[j])
                if dp[i][j] and l+1>len(ans)
                    ans = s[i:j+1]
        return ans


标签:子串,python,len,range,ans,字符串,dp,回文
From: https://blog.51cto.com/u_12722563/8871013

相关文章

  • python递归求解青蛙跳台阶问题
    一只青蛙一次可以跳上1级台阶,也可以跳上2级。请问该青蛙跳上一个n级的台阶总共有多少种跳法。输入台阶数,输出一共有多少种跳法。defjump1(n):ifn==1:return1elifn==2:return2else:returnjump1(n-1)+jump1(n-2)x=eval(input())pr......
  • python回溯求解电话号码组合
    给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。答案可以按任意顺序返回。给出数字到字母的映射如下(与电话按键相同)。注意1不对应任何字母。输入:digits="23"输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]示例2:......
  • python回溯法n皇后问题
    classSolution:defsolveNQueens(self,n:int):defgenerateBoard():board=list()foriinrange(n):row[queens[i]]="Q"board.append("".join(row))......
  • Wasserstein距离的python代码实现scipy.stats.wasserstein_distance解释
    在官方文档scipy.stats.wasserstein_distance—SciPyv1.8.0.dev0+1869.838cfbeManual(osgeo.cn)页面中scipy.stats.wasserstein_distance(u_values,v_values,u_weights=None,v_weights=None)对参数u_values,v_value,u_weights,v_weights解释不清晰。通过看文章Wassers......
  • maturin 方便发布基于rust 的python 包工具
    maturin是PyO3团队开发的,方便我们开发基于rust的python包,比如PyO3的使用文档中就使用了此工具安装&使用安装(可选,可以基于venv安装)可以基于pip以及pipx pipxinstallmaturin创建一个简单项目python-mvenv.venvsource.venv......
  • 【python】浏览器自动化Selenium安装WebDriver最新Chrome驱动
    selenium 是浏览器自动化测试框架,原本被用于网页测试。但到了爬虫领域,它又成为了爬虫的好帮手。selenium 可以控制你的浏览器,模仿人浏览网页,从而获取数据,自动操作等。首先打开 Chrome浏览器,依次点击浏览器右上角的 三个点 - 帮助 - 关于GoogleChrome查看浏览器版本信......
  • Python定位错误:段错误 (核心已转储)
    技术背景在各种编程语言中都有可能会遇到这样一个报错:“段错误(核心已转储)”。显然是编写代码的过程中有哪里出现了问题,但是这个报错除了这几个字以外没有任何的信息,我们甚至不知道是哪一行的代码出现了这个问题。解决方案在python中可以引用一个faulthandler的函数,就可以显......
  • python的orjson
    简介首先我们先来了解下orjson的优缺点:可以将datetime、date和time实例序列化为RFC3339格式,例如:"2022-06-12T00:00:00+00:00"序列化numpy.ndarray实例的速度比其他库快4-12倍,但使用的内存更少,约为其他库的1/3左右输出速度是标准库的10到20倍序列化的结果是bytes类型,而不是......
  • python之DataClass
    Python在版本3.7(PEP557)中引入了dataclass。dataclass允许你用更少的代码和更多的开箱即用功能来定义类。下面定义了一个具有两个实例属性name和age的常规Person类: classPerson:def__init__(self,name,age):self.name=nameself......
  • python迭代器理解
    目录什么是迭代器?为什么要有迭代?迭代器的优缺点什么是可迭代对象?什么是迭代器对象呢?什么是迭代器?在学习for循环的时候,听到了一个词叫可迭代对象。那什么是可迭代对象?了解后又知道了迭代,可迭代,迭代器这些名词,那这些到底是什么意思呢?我们先知道为什么for循环不像whlie循环一样,使......