Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.
Example:
Input: "babad" Output: "bab" Note: "aba" is also a valid answer.
Example:
Input: "cbbd" Output: "bb"
代码如下:
public class longestPalindrome {
private static int lo, maxLen;
public static String longestpalindrome(String s){
if(s.length() < 2)
return s;
for(int i =0 ; i<s.length()-1; i++){
extendPalindrome(s,i,i); //字符串中包含奇数个字符
extendPalindrome(s,i,i+1); //字符串中包含偶数个字符
}
return s.substring(lo , lo+maxLen);
}
private static void extendPalindrome(String s, int i, int j) {
while(i>=0 && j<=s.length() && s.charAt(i) == s.charAt(j)){
i--;
j++;
}
if(maxLen < j - i -1){
lo = i+1;
maxLen = j-i-1;
}
}
public static void main(String[] args) {
String s = "asasaff";
System.out.println(longestpalindrome(s));
}
}