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]