📅  最后修改于: 2023-12-03 14:58:24.328000             🧑  作者: Mango
给定两个字符串S和T,判断S是否为T的子序列。
子序列的定义:对于字符串S和T,如果可以通过从T中删除一些字符来获得S,则称S是T的子序列。 例如,S =“abc”是T =“ahbgdc” 的子序列,而S =“axc”不是T =“ahbgdc” 的子序列。
def is_subsequence(s: str, t: str) -> bool:
pass
如果s是t的子序列,则返回True,否则返回False。
输入1:
s = "abc"
t = "ahbgdc"
输出1:
True
输入2:
s = "axc"
t = "ahbgdc"
输出2:
False
该题目可以使用双指针算法解决。 在S和T中分别初始化两个指针i和j,分别对应S和T的第一个字符,如果S[i] == T[j],则i和j都加1;否则只有j加1。 最后,如果i等于S的长度,则S是T的子序列,否则不是。
def is_subsequence(s: str, t: str) -> bool:
i, j = 0, 0
while i < len(s) and j < len(t):
if s[i] == t[j]:
i += 1
j += 1
return i == len(s)
以上是该问题的解法,感谢您的耐心阅读。