문제 링크 : 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