美文网首页
516. Longest Palindromic Subsequ

516. Longest Palindromic Subsequ

作者: 冷殇弦 | 来源:发表于2017-09-29 22:20 被阅读0次

    Given a string s, find the longest palindromic subsequence's length in s. You may assume that the maximum length of s is 1000.
    Example 1:
    Input:
    "bbbab"
    Output:
    4
    One possible longest palindromic subsequence is "bbbb".

    Example 2:
    Input:
    "cbbd"
    Output:
    2
    One possible longest palindromic subsequence is "bb".
    求最长回文子序列


    动态规划问题,因为有“讨价还价”。
    注意j从i+1开始。

    class Solution {
        public int longestPalindromeSubseq(String s) {
            int n = s.length();
            int[][] dp = new int[n][n];
            for(int i=n-1;i>=0;i--){
                dp[i][i]=1;
                // j start from i+1
                for(int j=i+1;j<n;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][n-1];
        }
    }
    

    相关文章

      网友评论

          本文标题:516. Longest Palindromic Subsequ

          本文链接:https://www.haomeiwen.com/subject/fxpwextx.html