liang-leetCode/src/dataANDcalc/java/leetcode/Huiwenchuan.java

41 lines
1.1 KiB
Java

package leetcode;
public class Huiwenchuan {
private String longestPalindrome(String str){
int length = str.length();
char[] charArray = str.toCharArray();
boolean[][] dp = new boolean[length][length];
for(int i = 0; i<length; i++){
dp[i][i] = true;
}
int begin = 0;
int max = 1;
for(int i = 0; i<length; i++){
for(int j=0; j<i; j++){
if(charArray[i] != charArray[j]){
dp[i][j] = false;
} else {
if(i-1-(j+1)<2){
dp[i][j] = true;
} else {
dp[i][j] = dp[i-1][j+1];
}
}
if(dp[i][j] && i-j+1>max){
begin = j;
max = i-j+1;
}
}
}
return str.substring(begin, begin+max);
}
public static void main(String[] args) {
Huiwenchuan huiwenchuan = new Huiwenchuan();
System.out.println(huiwenchuan.longestPalindrome("abacab"));
}
}