Valid Parentheses
Given a string containing just the characters '('
, ')'
, '{'
, '}'
, '['
and ']'
, determine if the input string is valid.
The brackets must close in the correct order, "()"
and "()[]{}"
are all valid but "(]"
and "([)]"
are not.
思路:
利用栈LIFO的特性存储括号。
代码如下:
var isValid = function(s) {
var len = s.length;
var stack = [];
if (len === 0 || len%2 !== 0){
return false;
}
s = s.replace(/\(/g,"1");
s = s.replace(/\)/g,"4");
s = s.replace(/\[/g,"2");
s = s.replace(/\]/g,"5");
s = s.replace(/\{/g,"3");
s = s.replace(/\}/g,"6");
console.log(s);
stack.push(s[0]);
for(var i = 1; i<len; i++){
if(parseInt(s[i])-stack[stack.length-1] === 3){
stack.pop();
}else{
stack.push(s[i]);
}
}
console.log(stack);
if(stack.length === 0)
return true;
else
return false;
};