题目描述:
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。示例 1:
输入: "()"
输出: true来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/valid-parentheses
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路:
1.利用js数组表示栈,unshift表示入栈,shift表示出栈
2.分割字符串为数组,遍历数组,匹配对应符号,匹配成功则出栈,不成功则入栈
3.遍历完之后该栈为空 ,则返回true,否则返回flase
代码如下:
var isValid = function(s) {
var f=s.split("");
var e=[];
if(f.length==0){
return true;
}
if(f.length==1){
return false;
}
e[0]=f[0];
for(i=1;i<f.length;i++){
if(f[i]=="}"){
if(e[0]=="{"){
e.shift();
}else{
e.unshift(f[i])
}
}
else if(f[i]==")"){
if(e[0]=="("){
e.shift();
}else{
e.unshift(f[i])
}
}
else if(f[i]=="]"){
if(e[0]=="["){
e.shift();
}else{
e.unshift(f[i])
}
}
else{
e.unshift(f[i]);
}
}
if(e.length==0){
return true;
}else{
return false;
}
};