leetcode 5. 最长回文子串(Longest Palindromic Substring)
题目描述:
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。
示例 1:
输入: "babad"
输出: "bab"
注意: "aba" 也是一个有效答案。
示例 2:
输入: "cbbd"
输出: "bb"
解法:
class Solution {
public:
string longestPalindrome(string s) {
int sz = s.size();
vector<vector<bool>> lst(sz, vector<bool>(sz, false));
string res = "";
int res_len = -1;
for(int step = 0; step < sz; step++){
for(int i = 0; i < sz - step; i++){
if(s[i] == s[i+step] && (step <= 1 || lst[i+1][i+step-1]) == true){
lst[i][i+step] = true;
if(res_len < step){
res = s.substr(i, step+1);
res_len = step;
}
}
}
}
return res;
}
};

浙公网安备 33010602011771号