Time: 20190904
Type: Easy

题目描述

给定字符串 st ,判断 s 是否为 t子序列

你可以认为 st 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。

字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。

示例 1:

s = "abc", t = "ahbgdc"返回 true.示例 2:
s = "axc", t = "ahbgdc"返回 false.

后续挑战 :

如果有大量输入的 S,称作S1, S2, … , Sk 其中 k >= 10亿,你需要依次检查它们是否为 T 的子序列。在这种情况下,你会怎样改变代码?

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/is-subsequence
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路

利用语言提供的特性,in判断是否在字符串中,得到索引后,截断已经用过的,再在后面的字符串中求index

截断这种思想在这里很出彩,一方面是让求index这种方法可行,另一方面是有剪枝的作用,降低搜索的复杂度。

本题没有想好如何用DP…

TBD…

代码

取索引 + 截断

class Solution:def isSubsequence(self, s: str, t: str) -> bool:index = -1for c in s:if c in t:  index = t.index(c)t = t[index+1:] # 用过的就截断不要了else:return Falsereturn True

END.

Leetcode 392.判断子序列相关推荐

  1. leetcode - 392. 判断子序列

    392. 判断子序列 -------------------------------------------- 给定字符串 s 和 t ,判断 s 是否为 t 的子序列. 你可以认为 s 和 t 中仅 ...

  2. LeetCode 392. 判断子序列(双指针二分查找)

    1. 题目 给定字符串 s 和 t ,判断 s 是否为 t 的子序列. 你可以认为 s 和 t 中仅包含英文小写字母.字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 ...

  3. Leetcode 392. 判断子序列 (每日一题 20210929)

    给定字符串 s 和 t ,判断 s 是否为 t 的子序列.字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串.(例如,"ace"是&q ...

  4. 118. Leetcode 392. 判断子序列 (动态规划-子序列问题)

    步骤一.确定状态: 确定dp数组及下标含义 dp[i][j] 表示以下标i-1为结尾的字符串s,和以下标j-1为结尾的字符串t,相同子 序列的长度为dp[i][j]. 步骤二.推断状态方程: 在确定递 ...

  5. LeetCode 392 判断子序列

    思路:动态规划 如果s长度>t长度,则返回假 否则求最长公共子序列,如果最长公共子序列长度为s的长度,返回真,否则为假 问题转化为求s,t的最长公共子序列 定义dp数组: dp[i][j]表示  ...

  6. Leetcode 392. 判断子序列 解题思路及C++实现

    解题思路: 使用贪心算法,每在字符串t中找到s的相应顺序的一个字符,就当做找到了该字符,然后接着去找后面的字符. 程序大循环:在字符串 t 中去寻找字符串 s 的第一个字符. 每当找到 s 的起始字符 ...

  7. 【Leetcode -389.找不同 -392.判断子序列】

    Leetcode Leetcode -389.找不同 Leetcode -392.判断子序列 Leetcode -389.找不同 题目:给定两个字符串 s 和 t ,它们只包含小写字母. 字符串 t ...

  8. python 判断子序列_LeetCode 392. 判断子序列 | Python

    392. 判断子序列 题目 给定字符串 s 和 t ,判断 s 是否为 t 的子序列. 你可以认为 s 和 t 中仅包含英文小写字母.字符串 t 可能会很长(长度 ~= 500,000),而 s 是个 ...

  9. 392.判断子序列 | 792.匹配子序列的单词数

    392. 判断子序列 labuladong 题解思路 给定字符串 s 和 t ,判断 s 是否为 t 的子序列. 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成 ...

最新文章

  1. Nat. Commun. | 条件GAN网络和基因表达特征用于类苗头化合物的发现
  2. Ubuntu中如何使得程序在后台运行
  3. Python之pandas-profiling:pandas-profiling库的简介、安装、使用方法之详细攻略
  4. react中实现异步请求的方法一,react-thunk
  5. jQuery提供的存储接口
  6. ecshop二次开发笔记
  7. C# wpf ScrollBar自定义音量调节样式滚动条
  8. 计算机课堂小游戏活跃气氛,活跃气氛课堂互动小游戏大全
  9. 一步成高手:终极图解内存(上篇)
  10. Kodi+Alist v3 挂载阿里云盘他人分享链接打造在线影视库
  11. 高可用:美团点评智能支付核心交易系统的可用性实践
  12. Linux下的java运行
  13. C语言【微项目01】—电话号码管理系统(文件操作实现)【2021-06-29】
  14. 十四、Debian 10 ldap
  15. 用友YonSuite释放商业创新的“蝴蝶效应”
  16. 【每周一篇】常用推荐算法总结
  17. pandorabox挂硬盘文件服务器,PandoraBox将系统挂载到U盘启动图文教程
  18. Adobe Reader 离线安装包下载 大全
  19. 2014 年终总结:即使艰难,也要始终怀揣梦想
  20. 董老师又双叒叕送书啦,10本《Python程序设计入门与实践》

热门文章

  1. LeetCode-13.罗马数字转整数
  2. Factory Pattern工厂模式
  3. Php超出高度隐藏,html字符超出指定高度后省略显示_html/css_WEB-ITnose
  4. linux阵列建立分区,在Linux上创建磁盘阵列———RAID-5
  5. pb 数据窗口插入数据_46MB 变4.5PB 数据炸弹:新方法突破性压缩资料
  6. ppt设置外观样式_PPT办公技巧:PPT内置主题样式的3种运用办法
  7. mysql pgsql 语法_PostgreSQL ALIAS语法
  8. filezilla 设置服务器_服务器ftp软件,五款服务器ftp软件的使用方法
  9. Linux下飞鸽传书项目设计书,Linux 下飞鸽传书设计实现
  10. jdbc面试_JDBC面试问答