糖逗 发表于 2020-7-8 12:44:54

C++刷leetcode(5. 最长回文子串)【动态规划】

题目描述:
给定一个字符串 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) {
      int len = s.size();
      if(len == 0||len == 1)return s;
      int start = 0, max_len = 1;
      vector<vector<int>>dp(len, vector<int>(len));
      for(int i = 0; i < len - 1; i++){
            dp=1;
            if(s == s){
                dp=1;
                max_len = 2;
                start = i;
            }
      }
      for(int l = 3; l <= len; l++){
            for(int i = 0; i + l - 1 < len; i++){
                int j= l + i - 1;
                if(s==s && dp==1){
                  dp = 1;
                  start = i;
                  max_len = l;
                }
            }
      }
      return s.substr(start, max_len);
    }
};
页: [1]
查看完整版本: C++刷leetcode(5. 最长回文子串)【动态规划】