算法训练营day58

题目1:392. 判断子序列 - 力扣(LeetCode)

暴力解法

复制代码
class Solution {
public:
    bool isSubsequence(string s, string t) {
        if(s.size() > t.size()) return false;
        if(s.size() < t.size()) {
            swap(s, t);
        }
        bool reslut = false;
        int flag = 0;
        bool findflag = false;
        for(int i = 0;i < t.size();i++) {
            for(;flag < s.size();flag++) {
                if(s[flag] == t[i]) {
                    flag++;
                    findflag = true;
                    break;
                }
            }
            if(findflag) {
                findflag = false;
            }else return false;
        }
        return true;

    }
};

动态规划,其实和之前最长公共子序列一样,只不过最后就是比较以下dp数组的值是否和字符串s的长度相同

复制代码
class Solution {
public:
    bool isSubsequence(string s, string t) {
        if(s.size() > t.size()) return false;
        vector<vector<int>> dp(s.size() + 1, vector<int>(t.size() + 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] + 1;
                }else {
                    dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);
                    // 这里其实 = dp[i][j - 1]就可以                
                }
            }
        }
        if(dp[s.size()][t.size()] == s.size()) return true;
        else return false;

    }
};
相关推荐
潇湘散客3 分钟前
CAX软件插件化设计实现牛刀小试
c++·算法·图形学·opengl
速易达网络11 分钟前
2026,视觉算法正在经历一场静默革命
算法
WBluuue43 分钟前
Codeforces 1094 Div1+2(ABCDE)
c++·算法
TENSORTEC腾视科技1 小时前
腾视科技大模型一体机解决方案:低成本私有化落地,重塑行业智能应用新格局
大数据·人工智能·科技·算法·ai·零售·大模型一体机
酿情师1 小时前
区块链原理与技术02:区块链的数据结构04(区块结构)
数据结构·区块链
夏日听雨眠1 小时前
数据结构(循环队列)
数据结构·算法·链表
平行侠1 小时前
30MacLaren-Marsaglia算法故事文件
数据结构·算法
灵动小溪1 小时前
claude code工具PC安装部署
人工智能·算法
Asa121382 小时前
Nature Microbiology|跨微生物界菌株水平传播推断的新算法TRACS
算法
叼烟扛炮2 小时前
C++ 知识点22 函数模板
开发语言·c++·算法·函数模版