LC5. 最长回文子串

LC5. 最长回文子串

给你一个字符串 s,找到 s 中最长的 回文 子串。

示例 1:

1
2
3
输入:s = "babad"
输出:"bab"
解释:"aba" 同样是符合题意的答案。

示例 2:

1
2
输入:s = "cbbd"
输出:"bb"

提示:

  • 1 <= s.length <= 1000
  • s 仅由数字和英文字母组成
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Solution {
public:
string longestPalindrome(string s) {
string res = "";
for(int i = 0; i < s.length(); i++) {
string r1 = palidrome(s, i, i);
string r2 = palidrome(s, i, i + 1);
res = res.length() > r1.length() ? res : r1;
res = res.length() > r2.length() ? res : r2;
}
return res;
}

string palidrome(string &s, int left, int right) {
while(left >= 0 && right < s.length() && s[left] == s[right]) {
left--; right++;
}
return s.substr(left + 1, right - left - 1);
}
};

LC5. 最长回文子串
http://binbo-zappy.github.io/2025/03/05/leetcode/LC5-最长回文子串/
作者
Binbo
发布于
2025年3月5日
许可协议