题目在这:https://leetcode-cn.com/problems/is-subsequence/
思路分析:
这道题有几个需要注意的地方。
- 空字符串是任何字符串的子串。
- 子序列匹配是有顺序要求的。
比如abc
和a
db
fc
是匹配的。 和a
dc
fb
是不匹配的。
建立两个指针分别指向s串和t串。
当两个指针相同时,都往后挪一位,不相等时,将t所指指针向后挪。如果s指针遍历完成,则返回True。否则返回False。
完整代码
class Solution:
def isSubsequence(self, s: str, t: str) -> bool:
i_s = 0
j_t = 0
if len(s) == 0:
return True
while i_s < len(s) and j_t <len(t):
if s[i_s] == t[j_t]:
i_s +=1
j_t +=1
else:
j_t +=1
if i_s == len(s):
return True
return False