392. Is Subsequence

class Solution:
    def isSubsequence(self, s: str, t: str) -> bool:
        sp, tp = 0, 0
        while sp < len(s) and tp < len(t):
            if s[sp] == t[tp]:
                sp += 1
            tp += 1
        
        return True if sp == len(s) else False

指定兩個 pointer 一個在 s 一個在 t

t 持續往右走,直到字母與 s 相同

如果字母相同,s 走一格

如果 s 走到最後,表示 s 全部在 t 裡面,回傳 true

否則回傳 false

class Solution:
    def isSubsequence(self, s: str, t: str) -> bool:
        if s == "":
            return True
        
        s_idx, t_idx = 0, 0

        while s_idx < len(s) and t_idx < len(t):
            if s[s_idx] == t[t_idx]:
                s_idx += 1
            t_idx += 1
            if s_idx == len(s):
                return True
        
        return False

time complexity: O(n) n for length of t

space complexity: O(1)