s는 여러 괄호들로 이루어진 String 인자입니다. s가 유효한 표현인지 아닌지 true/false로 반환해주세요.
종류는 '(', ')', '[', ']', '{', '}' 으로 총 6개 있습니다. 아래의 경우 유효합니다.
한 번 괄호를 시작했으면, 같은 괄호로 끝내야 한다. 괄호 순서가 맞아야 한다.
이번문제는 stack의 기본 개념의 예제와 같은 문제이다.
def is_valid(string):
a = {'}':'{', ']':'[', ')':'('} # 중요점 1
if len(string)%2 == 1:
return False
else:
l1=[]
for s in string:
if s in a.keys(): # 중요점 2
if l1:
p=l1.pop() # 중요점 3
if not a[s] == p:
return False
else:
return False
else:
l1.append(s)
return len(l1) == 0