Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.
1.暴力法
public static String longestPalindrome(String str) {
Map resultMap = new HashMap<String, Integer>();
int max = 0;
String longStr = "";
for(int i = 0 ;i<str.length()-1;i++){
for(int j = i+1; j<=str.length();j++){
System.out.println(str.substring(i,j));
if(isRight(str.substring(i,j))){
if(max < (j-i)){
max = j-i;
longStr = str.substring(i,j);
}
resultMap.put(str.substring(i,j), j-i);
}
}
}
System.out.println(resultMap);
return longStr;
}
public static boolean isRight(String s){
if(s.length() == 1){
return true;
}
char[] chars = s.toCharArray();
boolean flag = true;
for(int i = 0; i<= s.length()/2; i++){
if(chars[i] != chars[s.length()-1-i]){
flag = false;
break;
}
}
return flag;
}
提交后时间超时,emmm 毕竟N^3 。
未完待续