0392. 判断子序列
大约 1 分钟
0392. 判断子序列
- 标签:双指针、字符串、动态规划
- 难度:简单
题目链接
题目大意
描述:给定字符串 和 。
要求:判断 是否为 的子序列。
说明:
- 。
- 。
- 两个字符串都只由小写字符组成。
示例:
- 示例 1:
输入:s = "abc", t = "ahbgdc"
输出:True
- 示例 2:
输入:s = "axc", t = "ahbgdc"
输出:False
解题思路
思路 1:双指针
使用两个指针 、 分别指向字符串 和 ,然后对两个字符串进行遍历。
- 遇到 的情况,则 向右移。
- 不断右移 。
- 如果超过 或 的长度则跳出。
- 最后判断指针 是否指向了 的末尾,即:判断 是否等于 的长度。如果等于,则说明 是 的子序列,如果不等于,则不是。
思路 1:代码
class Solution:
def isSubsequence(self, s: str, t: str) -> bool:
size_s = len(s)
size_t = len(t)
i, j = 0, 0
while i < size_s and j < size_t:
if s[i] == t[j]:
i += 1
j += 1
return i == size_s
思路 1:复杂度分析
- 时间复杂度:,其中 、 分别为字符串 、 的长度。
- 空间复杂度:。