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.
public class Solution {
public String longestPalindrome(String s) {
int num =s.length();
if(num<2)
return s;
int leftMost=0, rightMost=0, i=0;
int max=0;
int start,end;
char []c =s.toCharArray();
while(i<num)
{
start=i;
end=i;
while(i<num && c[i]==c[start]){
i++;
}
end=i-1;
//上面是为了找中间值,然后省略掉其中的重复值
while(start-1>=0 && end+1<num && c[start-1]==c[end+1]){
start--;
end++;
}
//进行检索,确定目标的字符串的范围
if(rightMost-leftMost <= end-start)
{
leftMost = start;
rightMost = end;
}
//进行比较确定是否为最大值
if(num-i<(rightMost-leftMost)/2)
break;
//如果当前检索的内容已经足以保证它是最大的了,那么就直接打破循环,输出
}
return s.substring(leftMost, rightMost+1);
}
}