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:
http://blog.csdn.net/linhuanmars/article/details/20888595
public class Solution {
public String longestPalindrome(String s) {
if(s==null||s.length()==0) return "";
int max=0;
String res="";//"" has length, null has no length. if you use null, you have to use max to represent res's length
for(int i=0;i<2*s.length()-1;i++)//2*s.length() is also accepted.
{
int left=i/2;
int right=i/2;
if(i%2==1) right++;
String str=lengthOfPalindrome(s,left,right);
if(max<=str.length())
{
max=str.length();
res=str;
}
}
return res;
}
private String lengthOfPalindrome(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);//substring, start include left, don't include right
}
}