C++ | Leetcode C++题解之第516题最长回文子序列

题目:

题解:

cpp 复制代码
class Solution {
public:
    int longestPalindromeSubseq(string s) {
        int n = s.length();
        vector<vector<int>> dp(n, vector<int>(n));
        for (int i = n - 1; i >= 0; i--) {
            dp[i][i] = 1;
            char c1 = s[i];
            for (int j = i + 1; j < n; j++) {
                char c2 = s[j];
                if (c1 == c2) {
                    dp[i][j] = dp[i + 1][j - 1] + 2;
                } else {
                    dp[i][j] = max(dp[i + 1][j], dp[i][j - 1]);
                }
            }
        }
        return dp[0][n - 1];
    }
};
相关推荐
坤坤子吖12 分钟前
C++继承:继承的基本用法与访问规则
开发语言·c++·笔记·学习
Demon--hx21 分钟前
C++ 文件流:理解 ifstream/ofstream 与 RAII 机制
开发语言·c++
纪念 22923 分钟前
C++ stack和queue
开发语言·c++
CodeYp201937 分钟前
第6讲:模板初阶
开发语言·c++·模板
.YM.Z1 小时前
【C++11】初识——右值引用和移动语义,可变参数模板
c++·c++11
要练八块腹肌1 小时前
红黑树的实现以及对map和set的封装
c++
Tisfy1 小时前
LeetCode 3644.排序排列:不对则与(脑筋急转弯)
数据结构·算法·leetcode·题解·位运算
骑着蜗牛撵大象3271 小时前
从三次握手到 epoll:C++ 写出可落地的 TCP Socket 服务端
网络·c++·tcp/ip·高并发·tcp·epoll
卡卡~~1 小时前
C++学习
开发语言·c++
杜 硕2 小时前
从零开始的C++生活——第四讲
开发语言·c++·生活