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了。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值