leetcode05.最长回文子串

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

如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。


示例:

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


分析:

1
枚举中心点

代码

  • C++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution {
public:
string longestPalindrome(string s) {
string res;
for (int i = 0; i < s.size(); i ++ ) {
int l = i - 1, r = i + 1;
while (l >= 0 && r < s.size() && s[l] == s[r]) l --, r ++ ;
if (res.size() < r - l - 1) res = s.substr(l + 1, r - l - 1);

l = i, r = i + 1;
while (l >= 0 && r < s.size() && s[l] == s[r]) l --, r ++ ;
if (res.size() < r - l - 1) res = s.substr(l + 1, r - l - 1);
}

return res;
}
};

[原题链接](5. 最长回文子串 - 力扣(Leetcode))

0%