Leetcode516. 最长回文子序列

浪尽此生 提交于 2020-01-13 00:19:27

题目

  • 给定一个字符串s,找到其中最长的回文子序列。可以假设s的最大长度为1000。
  • 示例 1:
    输入:“bbbab”
    输出:4
    一个可能的最长回文子序列为 “bbbb”。
  • 示例 2:
    输入:“cbbd”
    输出:2
    一个可能的最长回文子序列为 “bb”。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-palindromic-subsequence
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

方法

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



    }
}

思路

下一步方法

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!