求最长回文字符串
暴力法:
用两个for循环遍历字符串,判断每一个子字符串是否为palindrome,如果是并且长度大于maxPalindrome,则赋给maxPalindrome。
public String findSubPalindrome(String str) {
if (str == null || str.length() == 0) {
return null;
}
if (str.length() == 1) {
return str;
}
String maxPalindrome = "";
for (int i=0; i<str.length(); i++) {
for (int j=i+1; j<str.length()+1; j++) {
String tmpStr = str.substring(i, j);
if (isSubPalindrome(tmpStr) &&
tmpStr.length() > maxPalindrome.length()) {
maxPalindrome = tmpStr;
}
}
}
return maxPalindrome;
}
public boolean isSubPalindrome(String str) {
String strReverse = new StringBuilder(str).reverse().toString();
if (str.equals(strReverse)) {
return true;
} else {
return false;
}
}