티스토리 뷰

Given a string 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.

Note that an empty string is also considered valid.

'(', ')', '{', '}', '['및 ']'문자 만 들어있는 문자열을 입력 문자열이 유효한지 판단하십시오.
입력 문자열은 다음 경우에 유효합니다.

개방 브래킷은 동일한 유형의 브래킷으로 닫아야합니다.
개방 브래킷은 올바른 순서로 닫아야합니다.빈 문자열 또한 유효한 것으로 간주됩니다.

 

- 문자열의 위치를 숫자로 생각하고 풀었습니다.

/**
 * @param {string} s
 * @return {boolean}
 */
var isValid = function(s) {
    if(s.length % 2 != 0){ return false; }
    let len = s.length;
    
    var openBracket  = {
        '(' : 0,
        '[' : 1,
        '{' : 2
    };
    var closeBracket  = {
        ')' : 0,
        ']' : 1,
        '}' : 2
    };
    var arr = [];
    for(let i = 0; i < len ; i++){
        if(openBracket[s[i]] !== undefined){
            arr.push(openBracket[s[i]]);
            continue;
        }
        if(closeBracket[s[i]] !== undefined){
            if(arr[arr.length-1] == closeBracket[s[i]]){
                arr.pop();
            }else{
                return false;
            }
        }
    }
    if(arr.length != 0){return false;}
    return true;
};