이번 코드카타는 시간 안에 풀지 못해 모범 답안을 해석하며 stack의 개념에 대해 공부 했고, 마침 오후 세션 이었던 stack & queue을 듣고 다시 한번 stack을 공부 할 수 있는 기회 였다.
문제
s는 여러 괄호들로 이루어진 String 인자입니다.
s가 유효한 표현인지 아닌지 true/false로 반환해주세요.
종류는 '(', ')', '[', ']', '{', '}' 으로 총 6개 있습니다. 아래의 경우 유효합니다.
내 생각
모범답안
def is_valid(string):
left = ['(', '{', '[']
right = [')', '}', ']']
stack = [ ]
for letter in string:
if letter in left:
stack.append(letter)
elif letter in right:
if len(stack) <= 0:
return False
if left.index(stack.pop()) != right.index(letter):
return False
return len(stack) == 0