본문 바로가기
공부 정리/LeetCode

[LeetCode] Valid Parentheses (javascript)

by 경적필패. 2021. 12. 27.
반응형

문제

 

Given a string s containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.

An input string is valid if:

  1. Open brackets must be closed by the same type of brackets.
  2. Open brackets must be closed in the correct order.

문제[번역]

 '(', ')', '{', '}', '[' ,']'를 포함한 문자열이 주어집니다. 문자열이 유효한지 평가하세요.

1. 열린괄호는 같은괄호로 닫혀야함.

2. 열린 괄호는 순서대로 닫혀야함.


 

Example 1

Input: s = "()"
Output: true

Example 2

Input: s = "()[]{}"
Output: true

Example 3

Input: s = "{[]}"
Output: true

제약조건

 

  • 1 <= s.length <= 104
  • s consists of parentheses only '()[]{}'.

접근방법

 

스택을 이용하면 쉽게 풀 수 있습니다.

 

 


코드

 

/**
 * @param {string} s
 * @return {boolean}
 */
var isValid = function(s) {
    let map = {
        ")" : "(",
        "}" : "{",
        "]" : "["
    }
    let stack = [];
    for(let i=0; i<s.length; i++){
        if(s[i] === "(" || s[i] === "[" || s[i] === "{"){
            stack.push(s[i]);
        }
        else if(stack[stack.length-1] === map[s[i]]){
            stack.pop();
        }
        else{
            return false;
        }
    }
    return stack.length ? false:true;
};

 

 


주의사항

 

x

 

 

반응형

댓글