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];
    }
};
相关推荐
tankeven1 分钟前
HJ168 小红的字符串
c++·算法
鲸渔8 分钟前
【C++ 输入输出】cin、cout、cerr 与格式化输出
开发语言·c++·算法
香蕉鼠片14 分钟前
排序算法C++
c++·算法·排序算法
森G14 分钟前
51、Move方式创建线程---------多线程
c++·qt
xiaoye-duck16 分钟前
《算法题讲解指南:优选算法-栈》--65.删除字符中的所有相邻重复项,66.比较含退格的字符串,67.基本计算器II,68.字符串解码,69.验证栈序列
c++·算法·
Q741_14716 分钟前
每日一题 力扣 3653. 区间乘法查询后的异或 I 模拟 数学 位运算 C++ 题解
c++·数学·算法·leetcode·力扣·模拟
橘子编程17 分钟前
编程语言全指南:从C到Rust
java·c语言·开发语言·c++·python·rust·c#
XiYang-DING18 分钟前
【LeetCode】102.二叉树的层序遍历
算法·leetcode·职场和发展
艾莉丝努力练剑19 分钟前
【Linux线程】Linux系统多线程(三):Linux线程 VS 进程,线程控制
java·linux·运维·服务器·c++·学习·ubuntu
洛水水37 分钟前
高性能网络编程:io_uring vs epoll、QPS测试工具实现与10道网络面试题解析
c++·udp·tcp·io_uring