괄호들로 이루어진 String인자 S가 유효한 표현인지 아닌지 True/False로 리턴해주세요
유효하다는 것은 (), {}, [] 이러하듯 괄호 순서에 맞게 잘 닫혔는지를 판단하는 것입니다.
열린 괄호가 있으면 그 숫자와 동일한 닫는 괄호가 있으면 된다고만 생각했다. 하지만 그렇게 할 경우 {[}] 이러한 유효하지 않은 괄호도 통과가 되어버리는 문제가 발생을 했다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | class Solution: def isValid(self, s: str) -> bool: li = [] for i in s: if i == '(' or i =='{' or i =='[': li.append(i) elif li: c = li.pop() if i == ')': if c == '(': continue else: return False elif i == '}': if c == '{': continue else: return False elif i == ']': if c == '[': continue else: return False else: return False if len(li): return False return True | cs |
코드가 조금 간결하지 못한 것 같다. 혹여나 좀 더 간단하거나 고쳐 쓸 수 있는 부분이 있다면 지적해주시면 감사하겠습니다.