Tech for good

[Leetcode/TwoPointer] 392. Is Subsequence 본문

IT/Computer Science

[Leetcode/TwoPointer] 392. Is Subsequence

Diana Kang 2025. 2. 18. 23:29

class Solution:
    def isSubsequence(self, s: str, t: str) -> bool:
        i, j = 0, 0  # Pointers for s and t
        
        while i < len(s) and j < len(t):
            if s[i] == t[j]:  # Match found, move s pointer
                i += 1
            j += 1  # Always move t pointer
        
        return i == len(s)  # If we have matched all chars in s, return True
  • i += 1 -> s의 인덱스를 증가
  • j += 1 -> s와 상관없이 (즉, 매치됨과 상관없이) t의 인덱스를 하나씩 증가

 

  • Example 2의 경우, x가 t에 없으므로 i < len(s) -> False

시간 복잡도 및 공간 복잡도

  • 시간 복잡도: O(n) (t의 길이만큼 한 번 순회)
  • 공간 복잡도: O(1) (추가적인 공간 사용 없음)