给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。

示例 1:

输入: "babad"
输出: "bab"
注意: "aba" 也是一个有效答案。
示例 2:

输入: "cbbd"
输出: "bb"

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-palindromic-substring
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

class Solution {
public:string longestPalindrome(string s) {if(s.length() <= 1) return s;string str = "$#";for(int i = 0; i < s.length(); i++) {str += s[i];str += '#';}int n = str.length(), r = 0, c = 0, mx = 0, id = 0;vector<int> p(n, 0);for(int i = 1; i < n - 1; i++) {p[i] = r > i ? min(p[c * 2 - i], r - i) : 1;while(str[i - p[i]] == str[i + p[i]]) p[i]++;if(p[i] + i > r) {r = p[i] + i;c = i;}if(mx < p[i]) {mx = p[i];id = i;}}return s.substr((id - mx) / 2, mx - 1);}
};

leetcode 5. 最长回文子串 【马拉车】相关推荐

  1. [动态规划|字符串] leetcode 5 最长回文子串

    [动态规划|字符串] leetcode 5 最长回文子串 1.题目 题目链接 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例1: 输入: "b ...

  2. leetcode 5. 最长回文子串 暴力法、中心扩展算法、动态规划,马拉车算法(Manacher Algorithm)

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

  3. 20200118:(leetcode)最长回文子串(中心扩展算法详解及思考)

    最长回文子串(中心扩展算法详解及思考) 题目 中心扩展算法详解 代码实现 题目 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: " ...

  4. LeetCode 5. 最长回文子串(动态规划)

    文章目录 1. 题目 2. 解题 2.1 自己写的DP 2.2 优化后的DP 2.3 中心扩展法 1. 题目 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. ...

  5. 20200117:(leetcode)最长回文子串(暴力法)

    最长回文子串 题目 基本思路 代码实现 题目 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad" 输出: ...

  6. leetcode - 5. 最长回文子串

    给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 解题思路: 对于一个字符串,回文子串存在两种情况,第一种情况是???a???的回文子串,第二种情况是???aa ...

  7. leetcode题解5-最长回文子串

    问题描述 给你一个字符串 s,找到 s 中最长的回文子串. 示例 1: 输入:s = "babad" 输出:"bab" 解释:"aba" 同 ...

  8. LeetCode 516 最长回文子串

    思路: 动态规划 dp数组:dp[i][j]表示s[i:j]最长回文子串长度 出口: ●i j相同,   dp[i][j]  都为1 ●j=i+1,如果  s[j]=s[i]  dp[i][j]=2, ...

  9. [LeetCode][M0005]最长回文子串(Java)(马拉车(Manacher)算法)

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

最新文章

  1. java slfj教程_SLF4J入门程序
  2. MQTT---HiveMQ源代码具体解释(十八)Cluster-kryo与Serializer
  3. 鹅厂最新数字人,体温36.5℃
  4. Sql Server 2005的1433端口打开和进行远程连接
  5. java new的是构造函数_Java构造函数
  6. leetcode 75 --- sort-colors
  7. 1109: 数根(函数专题)
  8. style文件的指定
  9. 30岁女IT工程师感叹:靠这工具,把报表做成养老工作,月薪快3W
  10. Android:简易计算器
  11. ucgui添加自定义汉字库
  12. 利用CSF算法实现地面点云的粗分割
  13. Flash游戏开发技术分析(下)
  14. dell服务器分区表修复,如何修复被Partition Magic损坏的分区表
  15. 路由器,猫,交换机的区别
  16. Android开发网上的一些重要知识点[经验分享]
  17. def序列化器---视图序列化反序列化
  18. Go语言Cookie常用设置
  19. 表白,游戏,跨年,各种节日祝福的link
  20. 《区块链技术与应用》北大肖臻老师——课程笔记【6-8】

热门文章

  1. Docker:网络模式详解
  2. PADS画2.54mm排针
  3. iOS开发中的好工具
  4. 【目录和文件的管理】
  5. 汇编语言实验5:循环结构程序设计
  6. ESP32设备驱动-MAX44009环境光传感器驱动
  7. 边界Fisher分析(MFA)及其非线性改进核边界Fisher分析(KMFA)的验证对比
  8. shell-环境变量以及环境变量的配置文件
  9. 【多态】【虚表指针与虚表】【多继承中的多态】
  10. qt槽函数如何传递多个参数_Qt中connect函数不能传递参数的两种解决方法