代码随想录算法训练营第五十四 | ● 392.判断子序列 ● 115.不同的子序列

392.判断子序列

https://programmercarl.com/0392.判断子序列.html

cpp 复制代码
class Solution {
public:
    bool isSubsequence(string s, string t) {
        if(s.size()==0 )
            return true;
        if(t.size()==0)
            return false;
        vector<vector<int>> dp(s.size()+1,vector<int>(t.size()+1,0));
        for(int i=1;i<=s.size();i++) {
            for(int j=1;j<=t.size();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];
            }
        }
        if(dp[s.size()][t.size()]==s.size())
            return true;
        else
            return false;
    }
};

115.不同的子序列

https://programmercarl.com/0115.不同的子序列.html

cpp 复制代码
class Solution {
public:
    int numDistinct(string s, string t) {
        vector<vector<uint64_t>> dp(s.size()+1,vector<uint64_t>(t.size()+1,0));
        for(int i=0;i<=s.size();i++)
           dp[i][0]=1;
        for(int i=1;i<=s.size();i++) {
            for(int j=1;j<=t.size();j++) {
                if(s[i-1]==t[j-1])
                    dp[i][j]=dp[i-1][j-1]+dp[i-1][j];
                else
                    dp[i][j] = dp[i-1][j];
            }
        }
        return dp[s.size()][t.size()];
    }
};

看了解析写的,感觉自己看题还是写不出

相关推荐
Pluchon5 分钟前
硅基计划4.0 算法 二叉树深搜(DFS)
java·数据结构·算法·leetcode·深度优先·剪枝
deng-c-f23 分钟前
Linux C/C++ 学习日记(26):KCP协议(二):kcp源码分享
c语言·c++·学习·网络编程·kcp
给大佬递杯卡布奇诺23 分钟前
FFmpeg 基本API avformat_open_input函数内部调用流程分析
c++·ffmpeg·音视频
刻BITTER34 分钟前
用CMake 实现U8g2 的 SDL2 模拟环境
c++·stm32·单片机·嵌入式硬件·arduino
三贝勒文子43 分钟前
C++ 多线程实战 14|如何系统性避免死锁
c++
Yupureki1 小时前
从零开始的C++学习生活 9:stack_queue的入门使用和模板进阶
c语言·数据结构·c++·学习·visual studio
远远远远子1 小时前
C++-- 内存管理
c++·算法
sprintzer1 小时前
10.6-10.15力扣模拟刷题
算法·leetcode·职场和发展
小年糕是糕手1 小时前
【数据结构】单链表“0”基础知识讲解 + 实战演练
c语言·开发语言·数据结构·c++·学习·算法·链表
Dobby_052 小时前
【Go】C++ 转 Go 第(一)天:环境搭建 Windows + VSCode 远程连接 Linux
linux·运维·c++·vscode·golang