判断子序列(难度:简单)
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