⚡문제정보
스택 문제의 예제로 자주 나오는 괄호네요
스택을 이용하면 간단히 풀 수 있습니다.
🔍나의 풀이
var isValid = function(s) {
let stack = []
for(i=0 ; i<s.length; i++) {
if(s[i] == '(' || s[i] == '[' || s[i] == '{' ) {
stack.push(s[i])
}
if(s[i] == ')' && stack[stack.length -1] == '(') {
stack.pop()
}
if(s[i] == ']' && stack[stack.length -1] == '[') {
stack.pop()
}
if(s[i] == '}' && stack[stack.length -1] == '{') {
stack.pop()
}
}
return stack.length ? false : true
};
열리는 괄호면 stack에 집어넣어주고
닫히는 괄호라면 스택의 맨끝과 비교해서 일치하는 경우에 pop해줍니다.
만약 괄호의 종류가 한가지라면 if를 저렇게 종류별로 사용하지 않아도 될것입니다.
반응형
'leetcode' 카테고리의 다른 글
12. Integer to Roman 자바스크립트 (0) | 2023.01.08 |
---|---|
503. Next Greater Element II 자바스크립트 (0) | 2023.01.07 |
496. Next Greater Element I 자바스크립트 (0) | 2023.01.07 |
451. Sort Characters By Frequency 자바스크립트 (0) | 2023.01.07 |
349. Intersection of Two Arrays 자바스크립트 (0) | 2023.01.07 |