public class Solution {
public int longestPalindromeSubseq(String s) {
int[][] num = new int[s.length()][s.length()];
for(int i = s.length()-1; i>=0;i--) {
num[i][i] = 1;
for(int j = i+1; j< s.length();j++) {
if(s.charAt(i) == s.charAt(j)) {
num[i][j] = num[i+1][j-1]+2;
}else {
num[i][j] = Math.max(num[i][j-1], num[i+1][j]);
}
}
}
return num[0][s.length()-1];
}
}