41 lines
1.1 KiB
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"));
|
|
}
|
|
}
|