Given a string S,
find the longest palindromic substring in S.
You may assume that the maximum length of S is
1000, and there exists one unique longest palindromic substring.
java:
public class Solution {
public String longestPalindrome(String s) {
int left=0;
int right =0;
int maximum = 0;
if(s.length() < 2) return s;
for(int i=0; i<s.length(); i++)
{
int len1 = expandPalindrome(s, i,i);
int len2 = expandPalindrome(s,i,i+1);
int larger = Math.max(len1,len2);
if(larger > maximum)
{
left = i-(larger-1)/2;
right = i + larger/2;
maximum = larger;
}
}
return s.substring(left,right+1);
}
public int expandPalindrome(String s, int left, int right)
{
while(left >= 0 && right < s.length() && s.charAt(left) == s.charAt(right))
{
left --;
right ++;
}
return right -left - 1;
}
}
注意:left >= 0 && right < s.length()需要取到底,然后return right-left-1. 避免取到i和i+1不相等的情况还返回2的