zoukankan      html  css  js  c++  java
  • 20. Valid Parentheses

    20. 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.

     1 /**
     2  * @param {string} s
     3  * @return {boolean}
     4  */
     5 var isValid = function(s) {
     6     
     7     //数据结构里关于括弧匹配的问题往往用堆栈解决
     8     //如果是出现左括弧,我们就压栈,
     9     //如果是右括弧,我们就pop出来一个,看看是不是匹配,不匹配就是不合格的
    10     
    11     var slen = s.length;
    12     var stack = [];
    13      
    14     function check(s,p){
    15         
    16         switch(s){
    17                 
    18             case '(':
    19                 return p !=')';
    20             case '{':
    21                 return p !='}';
    22             case '[':
    23                 return p !=']';
    24         }
    25     }
    26     
    27     
    28     for(var i = 0;i < slen;i++){
    29         
    30         var p = s.charAt(i);
    31                 
    32         switch(p){
    33                 
    34             case '}':
    35             case ')':
    36             case ']':
    37                if(!stack.length){
    38                     return false;
    39                 }
    40                 var pop = stack.pop();
    41                 var res = check(pop,p);
    42                 if(res){
    43                     return !res;
    44                 }
    45                 break;
    46             default:
    47                 stack.push(p);
    48                 
    49         }
    50         
    51     }
    52     
    53     //全都匹配完了,看看是不是stack还有数据,有就是false
    54     if(stack.length){
    55         return false;
    56     }
    57     
    58     return true;
    59     
    60     
    61 };
  • 相关阅读:
    TestNG系列(四)TestNG监听器
    SpringBoot中Conditional的条件
    TCP的四次挥手与三次握手
    [Lamada] lamda流操作
    [Spring] 封装request 自定义添加parameter
    AES加密Demo
    [转]数据库软件架构,到底要设计些什么
    [正则表达式]
    [mysql] 查询配置文件读取位置和顺序
    [MySQL]错误日志
  • 原文地址:https://www.cnblogs.com/huenchao/p/7656372.html
Copyright © 2011-2022 走看看