유효한 괄호
by Cori문제
괄호로 된 입력값이 올바른지 판별하라
· 입출력 예
s | return |
()[]{} | True |
풀이
1. 스택 일치 여부 판별
-> 파이썬 리스트는 스택 연산인 푸시와 팝이 O(1)에 동작한다.
def isValid(s: str) -> bool:
stack = []
table = {
')':'(',
'}':'{',
']':'['
}
for char in s:
if char not in table:
stack.append(char)
elif not stack or table[char] != stack.pop():
return False
return len(stack) == 0
매핑 테이블을 만들어놓고, 매핑 테이블에 존재하지 않으면 푸시하고, 팝했을 때 결과가 일치하지 않으면 False를 리턴한다. 또한, 스택이 비어있는 상태에서 pop 연산을 시도할 경우 오류가 발생하기 때문에 이에 대한 예외처리도 구현한다.
Bt 해당 코드는 입력받은 문자열이 '[ ( ] { ) }'와 같이 구성된 경우 False를 return하는 단점이 있다.
'CS > Coding Test' 카테고리의 다른 글
섬의 개수 (0) | 2021.10.05 |
---|---|
일일 온도 (0) | 2021.10.04 |
두 수의 합 (0) | 2021.10.02 |
가장 긴 팰린드롬 부분 문자열 (0) | 2021.10.01 |
Hashing (0) | 2021.10.01 |
블로그의 정보
코딩하는 오리
Cori