题目链接:https://leetcode-cn.com/problems/longest-palindromic-substring/

相关题目:最长回文子序列

动态规划

dp[i][j]表示从i到j是否为回文子串,若是则为true

注意对比和最长回文子序列的不同之处,最长回文子序列dp数组中保存的是回文子串的长度,而最长回文子串dp数组中保存的是0或1。

状态转移方程:

dp[i][j]=true;     当s[i]==s[j]&&dp[i+1][j-1]时

代码:

string longestPalindrome(string s) {int n = s.size();vector<vector<int>> dp(n, vector<int>(n, 0));int len = 1, pos = 0;for (int i = 0; i < n; i++) {dp[i][i] = 1;if (i > 0 && s[i] == s[i - 1]) {dp[i - 1][i] = 1;len = 2;pos = i - 1;} }for (int l = 3; l <= n; l++) {for (int i = 0; i < n - l + 1; i++) {int j = i + l - 1;if (s[i] == s[j] && dp[i + 1][j - 1]) {dp[i][j] = dp[i + 1][j - 1];if (l > len) {len = l;pos = i;}}     }}return s.substr(pos, len);
}

leetcode算法题--最长回文子串相关推荐

  1. leetcode算法题--最长回文子序列★★

    原题链接:https://leetcode-cn.com/problems/longest-palindromic-subsequence/ 注意不是回文子串,子串必须是连续! dp[i][j]表示字 ...

  2. LeetCode刷题——最长回文子串

    目录 一.题目描述 二.题解 三.源码 一.题目描述 二.题解 三.源码 class Solution(object):def longestPalindrome(self, s):"&qu ...

  3. java 最长回文_【Java】【每日算法/刷穿 LeetCode】5. 最长回文子串(中等)

    首页 专栏 java 文章详情 0 [每日算法/刷穿 LeetCode]5. 最长回文子串(中等) 宫水三叶发布于 今天 12:00 题目描述 给你一个字符串 s,找到 s 中最长的回文子串. 示例 ...

  4. [Leedcode][JAVA][第5题][最长回文子串][数组][动态规划]

    [问题描述][第5题][最长回文子串][中等] 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000.示例 1:输入: "babad" 输出: & ...

  5. 算法-两最长回文子串

    题目 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为1000. 示例 1:输入: "babad" 输出: "bab" 注意: &q ...

  6. Manacher's algorithms(马拉车算法)最长回文子串

    最长回文子串 https://leetcode-cn.com/problems/longest-palindromic-substring/ 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 ...

  7. 【LeetCode】5.最长回文子串

    5.最长回文子串 一.问题描述 给你一个字符串 s,找到 s 中最长的回文子串. 二.问题简化 所谓回文字符串,即反过来念的字符串和正着念一样.比如"卿卿我我卿卿"."一 ...

  8. Manacher马拉车算法求最长回文子串

    终于把马拉车算法搞明白了!赶紧记录一下. 这个算法用于查找一个字符串的最长回文子串 马拉车算法依次给数组p[i]赋值,马拉车算法的本质就是在每次给数组p[i] 赋值时尝试进行偷懒 例如,当要给p[6] ...

  9. (算法)最长回文子串

    题目: 求一个字符串的最长回文子串 思路: 1.暴力枚举 最容易想到的就是暴力破解,列举每一个子串,然后根据回文的定义判断是不是回文,找到最长的那个. 求每一个子串的时间复杂度为O(N^2),判断子串 ...

最新文章

  1. PHP 可能在未来十年内消失?
  2. CString的用法
  3. golang实现生产者和消费者
  4. Android记录24-WebView实现白天/夜间阅读模式
  5. windows下的正向shell
  6. AngularJS笔记之创建服务方式比较 : factory vs service vs provider
  7. python查看模块功能_Python模块Os系统功能
  8. 关于 Oracle 分区索引的失效和重建
  9. java算法提高求最大值_藍橋杯 算法提高 求最大值
  10. 读写分离架构的两种方式及问题
  11. win7计算机怎么初始化,Win7系统网络初始化的设置方法
  12. java虚拟机假死怎么办_虚拟机假死解决方法
  13. 简单七个步骤写一份策划方案(上)
  14. 蛋糕瓜分殆尽 谁会成为下一个手游造富的加速器?
  15. 5款靠谱的安卓备份应用
  16. javaweb出现Exception invoking method manageApp java.lang.IllegalStateException: ContainerBase.addChild
  17. 以太网无法连接到internet的解决方法
  18. fedora php mysql_Fedora 8下用Yum安装Apache+PHP+MySQL环境
  19. python从入门到秃头_六星教育helen老师:零基础学习python,最好先掌握flask框架...
  20. 可快速部署的轻量级运维监控系统——WGCLOUD

热门文章

  1. python好学嘛-python语言好学吗
  2. python安装哪个版本-python到底安装哪个版本
  3. python的用途-Python运算符的作用与意义
  4. 如何自学python到做项目-django教程如何自学
  5. python游戏编程入门 免费-python游戏编程入门 python游戏编程入门课
  6. 搞定Linux只要半年
  7. foxmail邮件加载失败重试_java retry(重试) spring retry, guava retrying 详解
  8. spoj Simple Average
  9. LeetCode Swap Nodes in Pairs
  10. hdu1799 循环多少次?(组合递推公式的使用)