美文网首页
leetcode5 最长回文子串

leetcode5 最长回文子串

作者: 奥利奥蘸墨水 | 来源:发表于2019-12-26 22:23 被阅读0次

题目

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

示例 1:

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

分析

经典动态规划问题,记住找一个字符串中回文串的模版方法即可。

class Solution {
public:
    string longestPalindrome(string s) {

        if (s.empty()){
            return s;
        }

        int res_l = 0, res_i;
        int len = s.size();
        bool dp[len][len];

        //l表示长度,既是从长度为1的子串开始
        for (int l = 1; l <= len; l++){
            //i表示起始位置
            for (int i = 0; i <= len - l; i++){
                int j = i + l - 1;
                //灵魂状态转移方程
                dp[i][j] = (s[i] == s[j] && ( l <= 2 || dp[i + 1][j - 1]));

                //记录起始位置和长度
                if (dp[i][j] && l > res_l){
                    res_l = l;
                    res_i = i;
                }
            }
        }
        return s.substr(res_i, res_l);
    }
};

相关文章

  • leetcode动态规划问题汇总(陆续更新中。。。)

    题目 2019.12.26更新。。。 leetcode5 最长回文子串leetcode32 最长有效括号leetc...

  • leetcode5 最长回文子串

    题目 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1: 分析 ...

  • LeetCode5 最长回文子串

    给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1: 输入: "b...

  • 最长回文子串

    最长回文子串——Manacher 算法 1. 问题定义 最长回文字符串问题:给定一个字符串,求它的最长回文子串长度...

  • 字符串算法

    最长公共前缀 最长回文串 最长回文子序列 最长公共子串 反转单词顺序列 反转字符串 字符串转数字 IP-int互转

  • 打卡-最长回文子串

    最长回文子串(中等)

  • 最长回文子序列

    该问题区别于最长回文子串,子串必须是连续的,而子序列则可以跳跃,例如AABCAA的最长回文子串为AA,但是它的最长...

  • Manacher算法

    最长回文子串问题# 给定一个字符串,找出最长的回文子串,如"waabwswbfd",则最长子串为bwsb. 中心试...

  • 最长回文子串问题—Manacher算法

    最长回文串问题是一个经典的算法题。 0. 问题定义 最长回文子串问题:给定一个字符串,求它的最长回文子串长度。如果...

  • LeetCode 第647题:回文子串

    1、前言 2、思路 此题与最长回文子串很像,只不过那个是求最长的回文子串,而这个是求回文子串的数目。但是他们的解法...

网友评论

      本文标题:leetcode5 最长回文子串

      本文链接:https://www.haomeiwen.com/subject/sitroctx.html