中心扩展法:
public class Solution {
public String longestPalindrome(String s) {
int length = s.length();
int maxlength = 0;
int start=0;
for(int i=0;i<length;i++)//子串长度是奇数
{
int j=i-1,k=i+1;
while(j>=0&&k<length&&(s.charAt(j)==s.charAt(k)))
{
if(k-j+1>maxlength)
{
maxlength = k-j+1;
start = j;
}
j--;
k++;
}
}
for(int i=0;i<length;i++) //子串长度是偶数
{
int j=i,k=i+1;
while(j>=0&&k<length&&s.charAt(j)==s.charAt(k))
{
if(k-j+1>maxlength)
{
maxlength = k-j+1;
start = j;
}
j--;
k++;
}
}
if(maxlength>0)
{
return s.substring(start,start+maxlength);
}
return s;
}
}LeetCode Longest Palindromic Substring 最长回文子串
原文:http://blog.csdn.net/u010884939/article/details/43196637