LeetCode(top100) 有效的括号

有效的括号

题目描述

给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。

题目分析

有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
输入: “()”
输出: true
输入: “{[]}”
输出: true
输入: “([)]”
输出: false

思路(一)

使用栈的方法,后进先出,如果遇见左括号入栈,右括号出战,最终判断栈中是否还有剩余左括号,如果没有则匹配成功

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

你可能感兴趣的:(LeetCode(top100) 有效的括号)