参考:http://algorithms.tutorialhorizon.com/longest-palindromic-subsequence/ (老外写的博文,有图有字很形象)http://blog.csdn.net/thesnowboy_2/article/details/55251028(中文博客,动态规划解题分析)
public class Solution { public int longestPalindromeSubseq(String s) { int[][] dp = new int[s.length()][s.length()]; for (int i = s.length() - 1; i >= 0; i--) { dp[i][i] = 1; for (int j = i+1; j < s.length(); j++) { if (s.charAt(i) == s.charAt(j)) { dp[i][j] = dp[i+1][j-1] + 2; } else { dp[i][j] = Math.max(dp[i+1][j], dp[i][j-1]); } } } return dp[0][s.length()-1]; } }