力扣 392. 判断子序列

题目来源:https://leetcode.cn/problems/is-subsequence/description/

C++题解1:在t中按顺序一个一个寻找s的元素。

class Solution {
public:
    bool isSubsequence(string s, string t) {
        bool flg = false;
        int m = s.size(), n = t.size();
        if(m == 0) return true;
        int j = 0;
        for(int i = 0; i < n; i++){
            if(s[j] == t[i]) {
                j++;
                if(j == m){flg = true; break;}
            }
        }
        return flg;
    }
};

C++题解2(来源代码随想录):动态规划。虽然这样复杂好多,但是原网址说是为了后续的学习打下基础。

  1. 确定dp数组(dp table)以及下标的含义。dp[i][j] 表示以下标i-1为结尾的字符串s,和以下标j-1为结尾的字符串t,相同子序列的长度为dp[i][j]
  2. 确定递推公式。在确定递推公式的时候,首先要考虑如下两种操作,整理如下:
  • if (s[i - 1] == t[j - 1]):t中找到了一个字符在s中也出现了
  • if (s[i - 1] != t[j - 1]):相当于t要删除元素,继续匹配
class Solution {
public:
    bool isSubsequence(string s, string t) {
        int m = s.size(), n = t.size();
        if(m == 0) return true;
        vector<vector<int>> dp(m+1, vector<int>(n+1, 0));
        for(int i = 1; i <= m; i++) {
            for(int j = 1; j <= n; 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[m][n] == m) return true;
        else return false;
    }
};

相关推荐

  1. 392.判断序列

    2024-04-05 02:30:01       42 阅读
  2. (leetcode)第392判断序列(Python)

    2024-04-05 02:30:01       62 阅读
  3. 刷题-392.判断序列

    2024-04-05 02:30:01       53 阅读
  4. Leetcode 392 判断序列

    2024-04-05 02:30:01       46 阅读
  5. leetcode392--判断序列

    2024-04-05 02:30:01       35 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-05 02:30:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-05 02:30:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-05 02:30:01       82 阅读
  4. Python语言-面向对象

    2024-04-05 02:30:01       91 阅读

热门阅读

  1. 元宇宙虚拟空间的加载管理(三)

    2024-04-05 02:30:01       40 阅读
  2. 字符串处理算法

    2024-04-05 02:30:01       38 阅读
  3. 零日攻击

    2024-04-05 02:30:01       41 阅读
  4. 01背包问题

    2024-04-05 02:30:01       41 阅读
  5. 从Jenkinsfile构建到k8s部署

    2024-04-05 02:30:01       44 阅读
  6. Git/GitHub/Gitee⼯作流最佳实践

    2024-04-05 02:30:01       41 阅读
  7. 机器学习——典型的卷积神经网络

    2024-04-05 02:30:01       37 阅读
  8. 第十三题:天干地支

    2024-04-05 02:30:01       32 阅读
  9. 什么叫地下水年龄?

    2024-04-05 02:30:01       37 阅读