给你一个字符串 s
,找到 s
中最长的 回文
子串。
示例 1:
1 2 3
| 输入:s = "babad" 输出:"bab" 解释:"aba" 同样是符合题意的答案。
|
示例 2:
提示:
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); } };
|