stack 활용
괄호가 열릴때마다 짝이 맞는 닫히는 괄호를 스택에 저장
열리는 괄호에 해당되지 않을때 스택에서 한개를 pop 해서 짝이 맞는지 확인
어느경우에도 해당되지 않으면, 짝이 맞지 않거나, 이미 모든 s 순회했는데, 스택에 괄호가 남아있는 경우임
O(n)
class Solution:
def isValid(self, s: str) -> bool:
stack = []
for i in range(len(s)):
if s[i] == "(":
stack.append(")")
elif s[i] == "[":
stack.append("]")
elif s[i] == "{":
stack.append("}")
elif stack and stack.pop() == s[i]:
pass
else:
return False
if stack:
return False
return True
첫 제출 때 for 문을 다 돌았을때, stack 에 남아있는 경우인
s = “{{{{{” 인 경우를 생각못해서 만점을 못받았다.
if stack:
return False
위 코드를 추가하여 해결하였다.
자유 형식
수고하셨습니다!