zoukankan      html  css  js  c++  java
  • 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.

    题解

    思路:

    题意:输入一个只包含括号的字符串,判断括号是否匹配

    模拟堆栈,读到左括号压栈,读到右括号判断栈顶括号是否匹配

    var isValid = function (s) {
        var stack = [];
        var i = 0;
        var top;
        while (i < s.length) {
          //左括号压栈
            if ((s[i] === "(") || (s[i] === "[") || (s[i] === "{")) {
                stack.push(s[i]);
            } else {
                //右括号判断是否匹配,匹配则出栈,不匹配则return false;
                top = stack[stack.length - 1];
                if (s[i] === ")" && top !== "(") {
                    return false;
                }
                if (s[i] === "]" && top !== "[") {
                    return false;
                }
                if (s[i] === "}" && top !== "{") {
                    return false;
                }
                stack.pop();
            }
            i = i + 1;
        }
        //判断栈中是否有多余左括号
        if (stack.length > 0) {
            return false;
        }
        return true;
    };
  • 相关阅读:
    初学angular
    C#二维数组及其本质(转)
    蓝桥杯之递归算法
    同时安装Office2016和Visio2016
    蓝桥杯之暴力破解、枚举
    NAT(地址解析协议)
    云中继
    ACL(访问控制列表)
    虚拟链路(virtual-link)
    单臂路由
  • 原文地址:https://www.cnblogs.com/bubbleStar/p/6120956.html
Copyright © 2011-2022 走看看