Valid Parentheses-LeetCode JavaScript

校历最后一天~完成实验室上周五交代的任务(一个小任务做一周...)还有一点时间。

这道题思路先按照上一道题的经验用一个object为几个符号做索引;

然后,算法嘛,无非就是巧妙地将情况归类、问题总结,如何用最简单的语言将解决办法说出来并翻译成程序语句。

刚开始我思考了一会儿加加减减的,思考什么时候可以判断为false就戛然而止。

突然我想到了堆栈!天呐,我也是学过数据结构的人...

/**
 * @param {string} s
 * @return {boolean}
 */
var isValid = function(s) {
    var map = {
        "(" : 1,
        ")" : -1,
        "{" : 2,
        "}" : -2,
        "[" : 3,
        "]" : -3
    }
    var index;
    var value;
    var store = [];
    var count = 0;
    var popstr;
    for(var i=0;i<s.length;i++) {
        index = s[i];
        // 用map.index 取不到
        value = map[index];
        if(value > 0){
            store.push(index);
        }else{
            popstr = store.pop();
            if((map[popstr] + value) != 0){
                return false;
            }
        }
    }
    if(store.length == 0) return true;
    return false;
    
};
经过node调试,accept了。

看了看别人,嗯,用栈就大致对了。

猜你喜欢

转载自blog.csdn.net/L_bic/article/details/79175106
今日推荐