给出一个字符串(假设长度最长为1000),求出它的最长回文子串,你可以假定只有一个满足条件的最长回文串。
样例
给出字符串 “abcdzdcab”,它的最长回文子串为 “cdzdc”。
public class Solution {
/**
* @param s input string
* @return the longest palindromic substring
*/
public static String longestPalindrome(String s) {
if (s==null) {
return null;
}
if (s.length()==1) {
return s;
}
StringBuffer sb = new StringBuffer(s);
sb.reverse();
if (s.equals(sb+"")) {
return s;
}
return MaxSubString(s, sb);
}
public static String MaxSubString (String str1,StringBuffer str2){
String temp = new String("");
for (int i = 0; i < str2.length(); i++) {
for (int j = 0,k=str2.length()-i; k <= str2.length(); j++,k++) {
temp = str2.substring(j, k);
if (str1.contains(temp)) {
return temp;
}
}
}
return null;
}
}