当前位置: 首页 > article >正文

代码随想录算法训练营第四十四天-动态规划-子序列-392.判断子序列

  • 又是最长公共子序列题目的变体
  • 两个字符串,如果长度小的字符串的长度值与最长公共子序列值一样,就说明是子序列成立
  • 可以看成是长的字符串不掉删除字符,最后可以得到长度小的的字符串(顺序不能变)
  • 动规五部曲
    • dp[i][j]表示以i - 1为结尾的字符串s,和以j - 1为结尾的字符串t相同子序列的长度
class Solution {
public:
    bool isSubsequence(std::string s, std::string t) {
        int len1 = s.size(), len2 = t.size();
        if (len1 > len2) {
            return false;
        }
        std::vector<std::vector<int>> dp(len1 + 1, std::vector<int>(len2 + 1, 0));
        for (int i = 1; i <= len1; ++i) {
            for (int j = 1; j <= len2; ++j) {
                if (s[i - 1] == t[j - 1]) {
                    dp[i][j] = dp[i - 1][j - 1] + 1;
                } else {
                    dp[i][j] = dp[i][j - 1];
                }
            }
        }
        return dp[len1][len2] == len1;
    }
};
  • 这道题不需要判断第14行的dp[i - 1][j],这涉及到字符串s不需要删剪的情况(字符串t需要删剪来变成s
    • 还是不太理解
  • 汇总

http://www.kler.cn/a/535148.html

相关文章:

  • 【数据结构-Trie树】力扣720. 词典中最长的单词
  • 解析PHP文件路径相关常量
  • Unity扩展编辑器使用整理(一)
  • (一)DeepSeek大模型安装部署-Ollama安装
  • 【Rust自学】20.2. 最后的项目:多线程Web服务器
  • [数据结构] 线性表和顺序表
  • OKHttp拦截器解析
  • OpenOffice实现word转pdf
  • 深度整理总结MySQL——行记录存储
  • tcpdump 的工作层次
  • 计算机网络笔记再战——理解几个经典的协议4
  • AI 编程工具—Cursor进阶使用 生成AI工作流
  • 售后板子HDMI无输出分析
  • 力扣.270. 最接近的二叉搜索树值(中序遍历思想)
  • 分析用户请求K8S里ingress-nginx提供的ingress流量路径
  • 服务器升级nginx版本
  • ImportError: cannot import name ‘Undefined‘ from ‘pydantic.fields‘
  • 使用 OpenGL ES 在 iOS 上渲染一个四边形:从基础到实现
  • DKG(Distributed Key Generation)协议
  • 设计模式六大原则和单例模式
  • 依赖版本冲突导致微服务项目启动失败解决方法
  • 数据中台是什么?:架构演进、业务整合、方向演进
  • AI测试工程师成长指南:以DeepSeek模型训练为例
  • 【gjson使用方法】
  • 基于springboot+vue的社区居民诊疗健康管理系统设计与实现
  • [Android] 360行车记录仪谷歌版