[Leetcode] 20. Valid Parentheses
Problem
괄호 (,),[,],{,}가 주어지면 괄호의 열고 닫히는 순서가 올바른지 확인
Solution
- 문자열을 순차적으로 받는다.
- 괄호가 열리면 stack에 집어넣고, 닫히는 부분이라면 stack에서 뺀다.
- stack에서 뺀 값과 괄호가 닫히 문자와 매핑되는 열리는 괄호를 비교한다.
- 모든 문자열을 비교 후 스택이 비어있지않으면 괄호의 쌍의 수가 맞지 않으므로 false를 리턴한다.
JS CODE
javascript
/**
* @param {string} s
* @return {boolean}
*/
var isValid = function(s) {
let stack = []
const mapping = {
')':'(',
'}':'{',
']':'['
}
for(const c of s) {
if (/[\(\[\{]/.test(c)) stack.push(c)
else if (stack.pop() !== mapping[c]) return false
}
return stack.length === 0
};