代码随想录第五十七天|● 392.判断子序列 ● 115.不同的子序列

这篇具有很好参考价值的文章主要介绍了代码随想录第五十七天|● 392.判断子序列 ● 115.不同的子序列。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

392.判断子序列

题目: 给定字符串 s 和 t ,判断 s 是否为 t 的子序列。
字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。
进阶:
如果有大量输入的 S,称作 S1, S2, … , Sk 其中 k >= 10亿,你需要依次检查它们是否为 T 的子序列。在这种情况下,你会怎样改变代码?
代码随想录第五十七天|● 392.判断子序列 ● 115.不同的子序列,代码随想录,算法,动态规划

题目链接: 392.判断子序列
动态规划写法–编辑距离经典题目
如果当前字母不相同时 dp[i][j]=dp[i][j-1] 相当于把t中不相同的字母删除

class Solution {
    public boolean isSubsequence(String s, String t) {
//动态规划解法-编辑距离入门 相同的话 最长子序列是[i-1][j-1]+1
//不同的话 不考虑t的当前元素 也就是s[:i-1]t[:j-2]的值
        int dp[][] = new int[s.length()+1][t.length()+1];
        for(int i=1;i<=s.length();i++){
            for(int j=1;j<=t.length();j++){
                if(s.charAt(i-1)==t.charAt(j-1)){
                    dp[i][j]=dp[i-1][j-1]+1;
                }else{
                    dp[i][j]=dp[i][j-1];
                }
            }
        }
        return dp[s.length()][t.length()]==s.length()? true:false;
    }
}

115.不同的子序列

题目: 给你两个字符串 s 和 t ,统计并返回在 s 的 子序列 中 t 出现的个数,结果需要对 10^9 + 7 取模。
代码随想录第五十七天|● 392.判断子序列 ● 115.不同的子序列,代码随想录,算法,动态规划

题目链接: 115.不同的子序列
解题思路:
题目中 S长 T短
dp数组的含义:以i-1为结尾的S中有多少个j-1为结尾的T
递推公式:当S[i-1]与T[j-1]相同时 可以让S加入匹配也可以不让
递推表格:以s = “rabbbit”, t = "rabbit"为例
代码随想录第五十七天|● 392.判断子序列 ● 115.不同的子序列,代码随想录,算法,动态规划

代码实现:文章来源地址https://www.toymoban.com/news/detail-738484.html

class Solution {
    public int numDistinct(String s, String t) {
        int[][]  dp=new int[s.length()+1][t.length()+1];
        for(int i=0;i<=s.length();i++){
            dp[i][0]=1;
        }
        for(int i=1;i<=s.length();i++){
            for(int j=1;j<=t.length();j++){
                if(s.charAt(i-1)==t.charAt(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.length()][t.length()];
    }
}

到了这里,关于代码随想录第五十七天|● 392.判断子序列 ● 115.不同的子序列的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 代码随想录刷题第55天|Leetcode392判断子序列、Leetcode115不同的子序列

    1、Leetcode392判断子序列 题目链接:392判断子序列 本题与1143最长公共子序列 有一点不一样,最长公共子序列求 两个字符串 的最长公共子序列的长度,本题判断s是否为t的子序列。即t的长度是大于等于s的。 1、确定dp数组及下标含义 dp[i][j] 表示以下标i-1为结尾的字符串s,和以

    2024年02月16日
    浏览(45)
  • 代码随想录图论并查集 第七天 | 685.冗余连接II

    代码随想录图论并查集 第七天 | 685.冗余连接II 一、685.冗余连接II 题目链接:https://leetcode.cn/problems/redundant-connection-ii/ 思路:684.冗余连接中是连通且无环的无向图可直接使用并查集模板,如果想判断集合中是否有环,且那条边构成环,只需要每次加入并查集之前先判断一下是

    2024年02月06日
    浏览(54)
  • 【代码随想录 | Leetcode | 第七天】链表 | 链表相交 | 环形链表 II

    欢迎来到小K的Leetcode|代码随想录|专题化专栏,今天将为大家带来链表相交和环形链表 II的分享 ✨ ✨题目链接点这里 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。 图示两个链表在节点 c1 开始相交:

    2024年02月17日
    浏览(47)
  • 代码随想录第五十天

    题目链接 : 买卖股票的最佳时机 III 自己的思路 :想不到!!!!高维dp数组!! 正确思路 :这里和之前的都不太一样,因为限制了买卖股票的次数,所以我们就加大dp数组的维度;动规五部曲:1、dp数组的含义:dp[i][0]表示一开始不操作的情况、dp[i][1]表示第一次持有(不一定

    2024年02月11日
    浏览(37)
  • 算法训练第五十七天

    516. 最长回文子序列 - 力扣(LeetCode) 代码: 647. 回文子串 - 力扣(LeetCode)

    2024年02月09日
    浏览(48)
  • 第10天-代码随想录刷题训练-第五章 栈和队列- ● 理论基础 ● 232.用栈实现队列 ● 225. 用队列实现栈

    栈和队列对应的三个不同的STL版本,底层实现方式不一样, 为我们所知道的是 SGI STL 栈 栈提供 pop和push等接口, 不提供走访功能 也不提供迭代器, 不像map和set可以使用迭代器遍历,往往不被归类为容器,而是容器适配器 栈的内部实现结构可以使用 verctor、list 和 deque(默认)

    2024年02月04日
    浏览(41)
  • 代码随想录 图论

    目录 797.所有可能得路径  200.岛屿数量 695.岛屿的最大面积 1020.飞地的数量  130.被围绕的区域  417.太平洋大西洋水流问题  827.最大人工岛 127.单词接龙  841.钥匙和房间 463.岛屿的周长  797. 所有可能的路径 中等 给你一个有  n  个节点的  有向无环图(DAG) ,请你找出所有从

    2024年04月10日
    浏览(46)
  • 代码随想录刷题

    704. 二分查找 27. 移除元素

    2024年01月25日
    浏览(50)
  • [代码随想录]二叉树

    二叉树可以链式存储,也可以顺序存储。 那么链式存储方式就用指针, 顺序存储的方式就是用数组。 顾名思义就是顺序存储的元素在内存是连续分布的,而链式存储则是通过指针把分布在各个地址的节点串联一起。 链式存储如图: 链式存储是大家很熟悉的一种方式,那么

    2024年02月03日
    浏览(57)
  • 代码随想录 - 链表

    链表是一种通过指针串联的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)。 链表的类型  1、单链表  单链表中的指针域只能指向节点的下一个节点。  2、双链表 双链表:

    2024年02月13日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包