• 判断给定字符串中的大括号是否闭合


    判断给定字符串中的大括号是否闭合(返回True False;对于空字串,返回 True),在 Javascript 里,数组 Array 可以很方便的模拟栈的行为。

    1. 将大括号分为左括号和右括号
    2. 左括号看做入栈信号,右括号看做出栈信号
    3. 如果出栈时,没有与之匹配的元素,则结果不匹配,即返回 false
    4. 如果巡检完毕,得到的为空栈,则结果匹配,返回true

    代码如下:

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <title>判断给定字符串中的大括号是否闭合</title>
    </head>
    
    <body>
    </body>
    <script>
        function isBanlanced(str) {
            let arr = [...str];
            let stack = [];
    
            for (let i = 0; i < arr.length; ++i) {
                if (arr[i] == "{") {
                    stack.push("{");
                } else if (arr[i] == "}") {
                    if (stack.length === 0) {
                        return false;
                    }
                    console.log(arr[i], stack)
                    stack.pop();
                }
            }
    
    
            /**
             *
             * 注意:map 循环是无法跳出的,所以下面方法不可行,只能使用 for 循环
             *
             **/
            // arr.map((val, index) => {
            //     if (val == "{") {
            //         stack.push("{");
            //     } else if (val == "}") {
            //         if (stack.length === 0) {
            //             return false;
            //         }
            //         console.log(val, stack)
            //         stack.pop();
            //     }
            // })
    
            return stack.length === 0;
        }
    
        console.log(isBanlanced("[{}]{}{}}}}}{}{}{}{}{}{}{}"));  // false
        console.log(isBanlanced("{}{}{{}}"));  // true
        console.log(isBanlanced(""));  // true
    </script>
    
    </html>
    

    js 中 map 或 foreach 方法是无法跳出循环的,如果有需要跳出循环的遍历,推荐使用for循环

  • 相关阅读:
    JSON
    在ubuntu上部署Django
    Django安装
    Python3 编程第一步
    Python3 字典
    nginx 服务器下载安装配置详解
    彻底删除Navicat注册表
    JS 对输入的姓名 手机号码 邮箱做校验
    mysql 启动报错
    网线没问题 没法上网
  • 原文地址:https://www.cnblogs.com/cckui/p/9909859.html
Copyright © 2020-2023  润新知