zoukankan      html  css  js  c++  java
  • leetcode 有效括号

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

    有效字符串需满足:

    左括号必须用相同类型的右括号闭合。
    左括号必须以正确的顺序闭合。
    注意空字符串可被认为是有效字符串。

    示例 1:

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

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

    输入: "(]"
    输出: false

    /**
     * 使用map对象先存储一份左右括号的映射表
     * 创建一个栈
     * 分别拿传入的字符串作为map的键,看看是否能得到值,
     * 如果能拿到值就代表是左边括号,将其放入栈中,
     * 如果拿不到值就代表是右括号,看看栈顶元素是否和当前右括号匹配
     * 匹配就出栈,否则return false 结束循环
     * 
     */
    var isValid = function(s) {
      let map = {
        '(' : ')',
        '[' : ']',
        '{' : '}'
      }
      let res = []
      for(let i = 0; i < s.length; i++) {
        if(map[s[i]) {
          res.push(s[i])
        }else {
          if(map[res.pop()] !== s[i]) return false
        }
      }
       //最后判断左括号是否为空,括号是否成对出现
       return res.length===0
    };
  • 相关阅读:
    246.Strobogrammatic Number
    245.Shortest Word Distance III
    244.Shortest Word Distance II
    243.Shortest Word Distance
    242. Valid Anagram
    241. Different Ways to Add Parentheses
    240.Search in a 2D Matrix II
    239. Sliding Window Maximum
    238. Product of Array Except Self
    postgres 行列转换
  • 原文地址:https://www.cnblogs.com/lyt0207/p/14084931.html
Copyright © 2011-2022 走看看