스크랩 문제 - 유효한 괄호

9608 단어 문제를 풀다
제목:https://leetcode-cn.com/problems/valid-parentheses/
1.switch case
/**
 * @param {string} s
 * @return {boolean}
 */
var isValid = function(s) {
    let arr = []
    if(s.length % 2 !== 0) return false
    for(let i = 0; i < s.length; i++){
        let letter = s[i]
        switch(letter){
            case '(': {
                arr.push(letter)
                break
            }
            case '{': {
                arr.push(letter)
                break
            }
            case '[': {
                arr.push(letter)
                break
            }
            case ')': {
                if(arr.pop() !== '(') return false
                break
            }
            case '}': {
                if(arr.pop() !== '{') return false
                break
            }
            case ']': {
                if(arr.pop() !== '[') return false
                break
            }
        }
    }
    return !arr.length
};

2. 해시맵
/**
 * @param {string} s
 * @return {boolean}
 */
var isValid = function(s) {
    let arr = []
    let map = {
        '(': ')',
        '{': '}',
        '[': ']'
    }
    if(s.length % 2 !== 0 ) return false
    for(let i = 0;i < s.length; i++){
        let letter = s[i]
        if(map[letter]){
            arr.push(letter)
        }
        else {
            if( map[arr.pop() ] !== letter) return false
        }
    }
    return !arr.length
};

좋은 웹페이지 즐겨찾기