0392. 判断子序列
小于 1 分钟
0392. 判断子序列
- 标签:双指针、字符串、动态规划
- 难度:简单
题目大意
给定字符串 s
和 t
,判断 s
是否为 t
的子序列。
解题思路
双指针。
使用两个指针 i
、j
分别指向字符串 s
和 t
,然后对两个字符串进行遍历。
- 遇到
s[i] == t[j]
的情况,则i
向右移。 - 不断右移
j
。 - 如果超过
s
或t
的长度则跳出。 - 最后判断指针
i
是否指向了s
的末尾,即:判断i
是否等于s
的长度。如果等于,则说明s
是t
的子序列,如果不等于,则不是。
代码
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