给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。
思路:1.如果字符串个数是奇数,直接返回false
2.遍历,将遇到的左符号放入栈中,遇到右符号,进入栈中查看。
如果栈为空或栈中没有对应的左符号,则返回false。如果栈中有对应的左符号,则继续
3.遍历完成后,如果栈中没有左括号,则返回true
var isValid = function(s) {
//声明一个栈stock
let stock=[],length=s.length;
if(length%2==1) return false;
for(let item of s){
switch (item) {
case "[" :
case "(":
case "{":
stock.push(item);
break;
case "]":
if(stock.length==0||stock.pop()!=="[") return false;
break;
case ")":
if(stock.length==0||stock.pop()!=="(") return false;
break;
case "}":
if(stock.length==0||stock.pop()!=="{") return false;
break;
}
}
return !stock.length;
};