判断子序列

判断子序列(难度:简单)

3

方法一

利用Python切片,对s中的每个字符,若在t中,下一步比较index+1开始的字符串

1
2
3
4
5
6
7
8
9
class Solution:
def isSubsequence(self, s: str, t: str) -> bool:
for i in s:
if i in t:
t = t[t.index(i)+1:]
else:
return False
return True

1

方法二:双指针

若相等,两个指针都往前移,若不等,快指针往前移。最后比较慢指针与s的长度。

1
2
3
4
5
6
7
8
9
10
11
12
13
class Solution:
def isSubsequence(self, s: str, t: str) -> bool:
p1 = 0
p2 = 0
while p1 < len(s) and p2 < len(t):
if s[p1] == t[p2]:
p1 += 1
p2 += 1

if p1 == len(s):
return True
return False

2