题目描述
两个字符串序列s和t,s为短字符串,t可能很长。判断s中字符是否按顺序出现在t中(字符串的一个子序列是原始字符串删除一些或不删除字符而不改变剩余字符相对位置形成的新字符串)。如:s=[a,b,c], t=[a,h,b,g,d,c]返回True。
2
题解
思路:双指针
本题中要注意,不需要s中的字符在t中连续出现,因此只需要从s的第一个字符依次判断是否都出现在t中。这里设置两个指针,第一个指针i指向t中要判断的元素,第二个指针j指向s中要确认是否存在于t中的元素。当j指向的元素存在于t中时,j向后移动。
class Solution:
def isSubsequence(self, s: str, t: str) -> bool:
if len(s) == 0:
return True
i=0
j=0
while i <len(t) and j <len(s):
if s[j] == t[i]:
j+=1
i+=1
return j == len(s)