算法训练营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;

    }
};
相关推荐
yzx9910131 小时前
基于 Q-Learning 算法和 CNN 的强化学习实现方案
人工智能·算法·cnn
亮亮爱刷题1 小时前
算法练习-回溯
算法
眼镜哥(with glasses)2 小时前
蓝桥杯 国赛2024python(b组)题目(1-3)
数据结构·算法·蓝桥杯
int型码农6 小时前
数据结构第八章(一) 插入排序
c语言·数据结构·算法·排序算法·希尔排序
UFIT7 小时前
NoSQL之redis哨兵
java·前端·算法
喜欢吃燃面7 小时前
C++刷题:日期模拟(1)
c++·学习·算法
SHERlocked937 小时前
CPP 从 0 到 1 完成一个支持 future/promise 的 Windows 异步串口通信库
c++·算法·promise
怀旧,7 小时前
【数据结构】6. 时间与空间复杂度
java·数据结构·算法
积极向上的向日葵7 小时前
有效的括号题解
数据结构·算法·
GIS小天7 小时前
AI+预测3D新模型百十个定位预测+胆码预测+去和尾2025年6月7日第101弹
人工智能·算法·机器学习·彩票