• 20、有效的括号 | JS-栈的应用


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

    有效字符串需满足:

    左括号必须用相同类型的右括号闭合。
    左括号必须以正确的顺序闭合。
     

    示例 1:

    输入:s = "()"
    输出:true
    示例 2:

    输入:s = "()[]{}"
    输出:true
    示例 3:

    输入:s = "(]"
    输出:false
    示例 4:

    输入:s = "([)]"
    输出:false
    示例 5:

    输入:s = "{[]}"
    输出:true

    题解:

    可以用字典Map

     1 /**
     2  * @param {string} s
     3  * @return {boolean}
     4  */
     5 var isValid = function(s) {
     6     if(s.length % 2 ===1) return false;
     7     const stack = [];
     8     const map = new Map();
     9     map.set('(',')');
    10     map.set('{','}');
    11     map.set('[',']');
    12     for(let i=0; i<s.length; i+=1){
    13         const c = s[i];
    14         if(map.has(c)) {
    15             stack.push(c);
    16         }else{
    17             const t = stack[stack.length - 1];
    18             if(map.get(t) === c) {
    19                 stack.pop();
    20             }else{
    21                 return false;
    22             }
    23         }
    24     }
    25     return stack.length === 0;
    26 };
     1 /**
     2  * @param {string} s
     3  * @return {boolean}
     4  */
     5 var isValid = function(s) {
     6     if (s.length % 2 ===1) { return false; } //如果是奇数说明一定不匹配
     7     const stack = [];
     8     for(let i=0;i<s.length;i++){
     9         const c = s[i];  //拿到字符
    10         if(c ==='(' || c ==='{' || c === '[') {
    11             stack.push(c);
    12         } else {
    13             const t = stack[stack.length -1]; //t拿到栈顶
    14             if(
    15                 (t === '(' && c === ')') ||
    16                 (t === '{' && c === '}') ||
    17                 (t === '[' && c === ']') 
    18             ) {
    19                 stack.pop();
    20             } else {
    21                 return false;
    22             }
    23         }
    24     }
    25     return stack.length === 0;
    26 };
  • 相关阅读:
    idea快捷方式2
    idea快捷方式1
    小程序数组倒序
    小程序列表倒计时 wxs 实现
    cnpm
    小程序的空判断
    小程序正则写法
    Sphinx中文入门指南——新手可先看此文
    sphinx –rotate机制详解
    sphinx数据文件简析
  • 原文地址:https://www.cnblogs.com/oaoa/p/14822028.html
Copyright © 2020-2023  润新知