0392-判断子序列

技术0392-判断子序列 0392-判断子序列给定字符串 s 和 t ,判断 s 是否为 t 的子序列。
字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串

092-判断子序列

给定字符串S和T,判断S是否是T的子序列。

字符串的子序列是通过从原始字符串中删除一些(或不删除)字符而不改变剩余字符的相对位置而形成的新字符串。(例如,‘ace’是‘abcde’的子序列,而‘AEC’不是)。

高级:

如果有大量的输入S,叫做S1、S2、Sk,其中k=10亿,你需要依次检查它们是否是T的子序列。在这种情况下,您将如何更改代码?

谢谢:

特别感谢@pbrother添加了这个问题并创建了所有测试用例。

例1:

输入:s='abc ',t='ahbgdc '

输出:真

例2:

输入:s='axc ',t='ahbgdc '

输出:假

提示:

0=s .长度=100

0=长度=10^4

两个字符串都只包含小写字符。

资料来源:LeetCode

链接:https://leetcode-cn.com/problems/is-subsequence

参考:

https://leet code-cn.com/problems/is-subseries/solution/Dai-ma-sui-Xiang-Lu-Dai-ni-Xue-tou-dpzi-knntf/

python

# 0392.判断子序列

类别解决方案:

def isSubsequence(self,s:字符串,t:字符串)- bool:

'''

动态规划,编辑距离,时空O(n*m)

1.确定dp和下标

-dp[i][j],下标i-1结尾的S串,下标j-1结尾的T串。相同的子序列长度是dp[i][j]

2.确定重复公式

-如果s [I-1]=t [j-1],则在t中找到的字符也会出现在s中,dp[i][j]=dp[i-1][j-1] 1。

-如果s[i-1]!=t[j-1],相当于删除t中的字符并继续匹配,dp[i][j]=dp[i][j-1]

初始化

- dp[][]=0

4.遍历顺序

外层为S,内层为t。

:参数s:

:参数t:

:return:

'''

DP=[[0]*(len(t)1)for _ in range(len(s)1)]

对于范围(1)中的I,len(s) 1):

对于范围(1)中的j,len(t) 1):

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[-1][-1]==len :

返回真

False返回

golang

包动态编程

//动态规划

函数问题序列字符串

DP :=make([][][]int,len(s) 1)

对于i :=范围dp {

dp[i]=make([]int,len(t) 1)

}

对于I :=1;i=len我

对于j :=1;j=len(t);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[len(s)]

返回真

}

返回false

}

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/134429.html

(0)

相关推荐

  • Matlab-两种常用绘图方式

    技术Matlab-两种常用绘图方式 Matlab-两种常用绘图方式前言
    在平时作业中经常需要对所获得的二维数据进行可视化,主要使用以下两种方法
    一、分图显示
    通过figure()划分每张图片
    x = 0

    礼包 2021年10月28日
  • Java中Future和FutureTask怎么用

    技术Java中Future和FutureTask怎么用小编给大家分享一下Java中Future和FutureTask怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、Future 接口当 call

    攻略 2021年11月30日
  • 博字,博览群书的博字是什么意思

    技术博字,博览群书的博字是什么意思“博”字意思是:多,广泛博字。博览群书读音:bó lǎn qún shū
    释义:谓广泛阅读各类书籍,形容学识渊博。
    例句:爷爷一生博览群书,知识渊博,受到大家的敬佩。
    出处:唐朝令狐德棻

    生活 2021年10月25日
  • Redis五种数据类型的底层实现

    技术Redis五种数据类型的底层实现 Redis五种数据类型的底层实现简介
    Redis的五大数据类型也称五大数据对象;前面介绍过6大数据结构,Redis并没有直接使用这些结构来实现键值对数据库,而是使

    礼包 2021年11月11日
  • elasticsearch 教程(elasticsearch配置优化详解)

    技术Elasticsearch 预处理的技巧示例分析本篇文章为大家展示了Elasticsearch 预处理的技巧示例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 1、上问题

    攻略 2021年12月16日
  • Win10下jdk安装及环境变量配置的方法是什么

    技术Win10下jdk安装及环境变量配置的方法是什么这篇文章主要讲解了“Win10下jdk安装及环境变量配置的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Wi

    攻略 2021年12月3日