Palindrome_Edit_Distance
class Solution {
public static void main(String[] args) {
int res = longestPalindrome("aaeaaac");
System.out.println(res);
}
//自己方法
public static int longestPalindrome(String s) {
int n = s.length();
int [][] dp = new int[n][n];
String result=null;
// 初始化
for(int i = 0;i<n-1;i++){
dp[i][i+1] = s.charAt(i)==s.charAt(i+1)?0:1;
}
for(int j = 0; j < n; j++){
for(int i = j;i >= 0 ;i--){
if (s.charAt(i)==s.charAt(j)){
if(j - i > 2){
dp[i][j] = dp[i+1][j-1];
}
}else{
if(j - i >= 2){
dp[i][j] = Math.min(dp[i+1][j], dp[i][j-1]) + 1;//删除或插入
dp[i][j] = Math.min(dp[i][j], dp[i+1][j-1] + 1);//替换
}
}
}
}
return dp[0][n-1];
}
}