博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode:Longest Palindromic Substring QuestionEditorial Solution
阅读量:3625 次
发布时间:2019-05-21

本文共 699 字,大约阅读时间需要 2 分钟。

最长回文子串,利用动态规划可以解出来,复杂度是O(n^2),空间复杂度是O(n),因为我们可以用区间长度来进行动态规划,这样总是只需要3n的空间即可。base是size=1和0的情况,然后每次都增加1个长度,用长度为size-2的情况来分析。

class Solution(object):    def longestPalindrome(self, s):        n = len(s)        s+=' '        index= (0,0)        T = [[0]*(n+1) for i in range(3)]        for start in range(n):            T[0][start],T[1][start]=1,(s[start]==s[start+1])            if T[1][start]:index = (start,1)        for size in range(2,n):            for start in range(n-size):                T[(size%3)][start] = (s[start]==s[start+size] and T[(size-2)%3][start+1])                index = (start,size) if (T[size%3][start] and size>index[1]) else index        return s[index[0]:index[0]+index[1]+1]

转载地址:http://cmrkn.baihongyu.com/

你可能感兴趣的文章
Bootstrap 栅格基本模板使用
查看>>
SpringBoot 整合Mybatis
查看>>
SpringBoot 事务的使用
查看>>
Windows 常用网络cmd命令
查看>>
Java 方法(方法重载)与数组
查看>>
Java 类、对象和构造器
查看>>
Java 三大特征:封装、继承(方法覆盖,this,super)和多态
查看>>
Layui 栅格系统、常用表单和校验与监听
查看>>
Java 抽象方法、final与static、代码块和内部类
查看>>
Java 接口与枚举
查看>>
Java System与Runtime类常用方法
查看>>
Java 进程/线程与线程同步/死锁
查看>>
Java Math、BigDecimal和BigInteger类常用方法
查看>>
Java Random、ThreadLocalRandom和UUID随机数类
查看>>
Java 线程通信与线程的生命周期
查看>>
Base64加密和解密JDK8
查看>>
AOP + Redis实现防止表单重复提交(注解方式)
查看>>
java对象转JSONObject、JSONObject转java对象及String转JSONObject
查看>>
JdbcTemplate.query返回list
查看>>
一条sql语句的一生
查看>>