【Leetcode problem 20】-Valid Parentheses

来源:互联网 发布:淘宝网 电脑版 登录 编辑:程序博客网 时间:2024/06/04 18:55

思路分析:1.判断字符为左括号,则将其压入数组中。

                  2.若字符为右括号,则判断其与数组中的最新压入的字符是否匹配。

                  3.若匹配,则弹出数组中的元素。

                 4.否则返回false;


javascript代码如下

/** * @param {string} s * @return {boolean} */var isValid = function(s) {       var arr=[];    var len=s.length;    for(i=0;i<len;i++){                switch(s[i]){            case "[":arr.push(s[i]);break;            case "(":arr.push(s[i]);break;            case "{":arr.push(s[i]);break;            case "]":if(arr[arr.length-1]=="["){arr.pop();}                    else{ return false;}                    break;            case ")":if(arr[arr.length-1]=="("){arr.pop();}                    else{ return false;}                    break;            case "}":if(arr[arr.length-1]=="{"){arr.pop();}                    else{ return false;}                    break;        }    }    if(arr.length==0){         return true;    }            else{         return false;    }};


如下代码使用对象:

var isValid = function(s) {   var left={       "(":")",       "[":"]",       "{":"}"   },   right={       "}":0,       ")":0,       "]":0   },   len=s.length,   i=0,match=[];     for(i=0;i<len;i++){     if(left.hasOwnProperty(s[i])){     match.push(left[s[i]]);     }else{         if(s[i]==match[match.length-1]){             match.pop();        }else{            return false;        }     } } if(match.length===0){       return true; }  else{      return false; }    var arr=[];    var len=s.length;    for(i=0;i<len;i++){                switch(s[i]){            case "[":arr.push(s[i]);break;            case "(":arr.push(s[i]);break;            case "{":arr.push(s[i]);break;            case "]":if(arr[arr.length-1]=="["){arr.pop();}                    else{ return false;}                    break;            case ")":if(arr[arr.length-1]=="("){arr.pop();}                    else{ return false;}                    break;            case "}":if(arr[arr.length-1]=="{"){arr.pop();}                    else{ return false;}                    break;        }    }    if(arr.length==0){         return true;    }            else{         return false;    }};




原创粉丝点击