【训练营day55|动态规划|392.判断子序列、115.不同的子序列】

news/2024/11/23 20:49:43/

训练营day55|动态规划|392.判断子序列、115.不同的子序列

  • 392.判断子序列
    • 要点
    • 代码
  • 115.不同的子序列
    • 要点
    • 代码

392.判断子序列

要点

  1. 和最长公共子序列类似的思想

代码

class Solution:def isSubsequence(self, s: str, t: str) -> bool:m = len(s) + 1n = len(t) + 1dp = [[False] * n for _ in range(m)]for i in range(n):dp[0][i] = Truefor i in range(1, m):for j in range(i, n):if dp[i][j - 1] or (s[i - 1] == t[j - 1] and dp[i - 1][j - 1]):dp[i][j] = Truereturn dp[-1][-1]
class Solution:def isSubsequence(self, s: str, t: str) -> bool:m = len(s) + 1n = len(t) + 1dp = [[0] * n for _ in range(m)]for i in range(1, m):for j in range(i, n):if s[i - 1] == t[j - 1]:dp[i][j] = dp[i - 1][j - 1] + 1else:dp[i][j] = dp[i][j - 1]return (m - 1) == dp[-1][-1]

115.不同的子序列

要点

  1. dp[i][j]:以i-1为结尾的s子序列中出现以j-1为结尾的t的个数为dp[i][j]。
  2. 初始化中dp[i][0] = 1

代码

class Solution:def numDistinct(self, s: str, t: str) -> int:m = len(s) + 1n = len(t) + 1dp = [[0] * n for _ in range(m)]for i in range(m):dp[i][0] = 1for i in range(1, m):for j in range(1, n):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[-1][-1]

http://www.ppmy.cn/news/706110.html

相关文章

go 语言string

go 语言string Go语言中的字符串(string)是一种不可变的字节序列。它是以UTF-8编码的Unicode字符集的一个集合。在Go中,字符串是原生类型,使用双引号或反引号括起来表示。 以下是关于Go语言字符串的一些重要特性: 字…

【每日一题】445. 两数相加 II

【每日一题】445. 两数相加 II 445. 两数相加 II题目描述解题思路 445. 两数相加 II 题目描述 给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。 你可以假设除了数字 0 之外&#xff0c…

家政保洁维修上门预约系统开发;

家政保洁维修上门预约系统开发; 保洁,家电清洗等上门业务系统,支持派单接单,按区域,就近分配、套餐年卡等; 育婴月嫂系统 保姆筛选,简历主页,推荐跟进,在线合同&#xf…

viewsets.ViewSet 详细讲解

一、地址 官方地址: Viewsets - Django REST framework 相关文章: 二、ViewSets介绍 引入: from rest_framework import viewsets ViewSet 类只是一种类基础视图,它不提供任何方法处理程序(如 .get() 或 .post…

python算法 -- 05 排序

冒泡排序 外层循环控制遍历的轮数,内层循环用于比较相邻元素并进行交换每一轮将剩下的元素里最大的放到最后 l [2, 45, 33, 68, 23, 45, 78, 99, 67, 10] n len(l)for i in range(n-1):for j in range(n-1-i):if l[j] > l[j1]:l[j], l[j1] l[j1], l[j]print…

单位社保缴纳明细表_职工社保缴费明细表

单位 个人 单位 20% 8% 7% XJK21331 姓名1 677*********** 10000 200 80 70 XJK21332 姓名2 678*********** 10000 200 80 70 XJK21333 姓名3 679*********** 10000 200 80 70 XJK21334 姓名4 680*********** 10000 200 80 70 XJK21335 姓名5 681*********** 10000 200 80 70 X…

办北京居住证,定制社保缴费记录,个人权益记录最近6个月的查询与打印,社保,北京市社会保险,北京市社会保险网上服务平台,北京市社会保险网上申报查询系统

20200519编辑 http://fuwu.rsj.beijing.gov.cn/csibiz/indinfo/index.jsp 必须要最近六个月的,网上是延迟2个月的,比如这个现在是5月份,就得要2020年03月和以前的(就是要包含3月份的,以前打印的是包含到1月份不行&am…

武汉市个人社保缴费证明网上打印操作流程

本文首发于:https://www.hoscen.cn/blog/hao/articles/184053017752895488.html 作者:小郝不负流年 更多相关文章请访问 www.hoscen.cn ------ 前言: 由于本人多次涉及需要打印这个证明,而每次都会忘记入口,在网上…