392. Is Subsequence

Doyeon Kim·2022년 6월 15일

코딩테스트 공부

목록 보기
80/171

문제 링크 : https://leetcode.com/problems/is-subsequence/


s와 t가 주어질 때 s가 t의 subsequence면 true, 아니면 false를 반환하는 문제이다.

초기에 풀었다가 실패한 코드

class Solution:
    def isSubsequence(self, s: str, t: str) -> bool:
        l = 0
        r = len(s)-1
        while l<r:
            if s[l] in t:
                l+=1
            else:
                if s[l] not in t:
                    return False
            break
            
        return True

이후 수정을 했던 2차코드...
실패

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

실패한 테.케:

Input
""
"ahbgdc

(이정도면.. 틀리라고 만든 테.케. 아닌가..?)

다시 약간의 수정을 하여 성공한 코드

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

s와 t를 탐색하면서 같으면 숫자를 증가시켜준다.
그리고 l과 s의 개수만큼 같아졌으면 모두 탐색이 되었다는 뜻이고 이는 s의 배열들이 t 안에 있는 subsequence라는 뜻이므로 true를 반환한다.


22.08.18
복습

s와 t둘다 탐색...

class Solution:
    def isSubsequence(self, s: str, t: str) -> bool:
        l = 0
        r = 0
        sss = len(s)
        ttt = len(t)
        
        
        while l<sss and r<ttt :
            if s[l] == t[r]:
                l += 1
                r += 1
            else:
                r +=1
        if l == sss:
            return True
        
        
        return False
                
profile
성장하고 도전하는 개발자. 프로그래밍 좋아하세요?

0개의 댓글