一、题目描述
给你一个字符串 s,找到 s 中最长的回文子串
二、示例
三、难度
中等
四、代码
Java版
从中⼼向两端扩散
class Solution {
public String palindrome(String s,int left , int right) {
while (left >= 0 && right < s.length() && s.charAt(left) == s.charAt(right)) {
--left;
++right;
}
return s.substring(left+1,right);
}
public String longestPalindrome(String s) {
if(s.length() < 2) return s;
int left = 0, right = 0;
String str = "";
for (int i = 0; i < s.length(); ++i) {
/*
回文子串长度可能为奇数或偶数
*/
String oddStr = palindrome(s,i,i);
String evenStr = palindrome(s,i,i+1);
str = str.length()>oddStr.length()?str:oddStr;
str = str.length()>evenStr.length()?str:evenStr;
}
return str;
}
}