给你一个字符串 s,找到 s 中最长的回文子串。
示例 1:
输入:s = "babad"
输出:"bab"
解释:"aba" 同样是符合题意的答案。
示例 2:
输入:s = "cbbd"
输出:"bb"
示例 3:
输入:s = "a"
输出:"a"
示例 4:
输入:s = "ac"
输出:"a"
提示:
1 <= s.length <= 1000
s 仅由数字和英文字母(大写和/或小写)组成
class Solution {
public String longestPalindrome(String s) {
if(s.length() == 0) return s
int res = 1
int ll = 0
int rr = 0
// 回文子串分奇数和偶数个,分开考虑
for(int i = 0
// 奇数个的情况向两边扩散
int l = i-1
int r = i+1
while(l>=0 && r<s.length() && s.charAt(l) == s.charAt(r)){
int len = (r-l+1)
if(len > res){
res = len
ll = l
rr = r
}
l--
r++
}
// 偶数个的情况向两边扩散
l = i
r = i+1
while(l>=0 && r<s.length() && s.charAt(l) == s.charAt(r)){
int len = (r-l+1)
if(len > res){
res = len
ll = l
rr = r
}
l--
r++
}
}
return s.substring(ll,rr+1)
}
}