• LeetCode20:validParentheses


    validParentheses

    题目描述

    Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.

    An input string is valid if:

    Open brackets must be closed by the same type of brackets. Open brackets must be closed in the correct order. Note that an empty string is also considered valid.

    Example 1:

    Input: "()" Output: true Example 2:

    Input: "()[]{}" Output: true Example 3:

    Input: "(]" Output: false Example 4:

    Input: "([)]" Output: false Example 5:

    Input: "{[]}" Output: true

    思路

    • 使用栈方法,遍历字符串
    • 如果当前字符为左边括号时,直接将其压入栈
    • 如果遇到右半边括号时,分类讨论:
      • 1.如果栈不为空,验证是否对应左边的括号,取出栈顶元素,继续循环、
      • 若这时栈为空,则直接返回false
      • 若不为对应的左边括号,返回false

    实现思路

    1.使用栈方法(使用数组的push()和pop()来模拟)

    代码

    var isValid = function(s) {
      let valid = true
      const stack = []
      const mapper = {
        '{': '}',
        '(': ')',
        '[': ']'
      }
      if (s === '') {
        return valid;
      }
      for (let value of s) {
        let v = value;
        if (['{', '(', '['].indexOf(v) != -1) {
          stack.push(v)
        } else {
          if (stack.length == 0) {
            valid = false;
          } else {
            const va = stack.pop()
            if (mapper[va] != v) {
              valid = false;
            }
          }
        }
      }
      return valid;
    }
    
    
    大道至简 知易行难
  • 相关阅读:
    实现简单HttpServer案例
    实现简单Mybatis案例
    python 判断文件和文件夹是否存在的方法 和一些文件常用操作符
    常用模块学习
    python格式化输出
    ubuntu 配置vim编辑器
    linux 安装python3.x
    python属性限制 __slots__
    选课系统作业
    通过sorted获取dict的所有key值或者value值
  • 原文地址:https://www.cnblogs.com/axinmir/p/10784689.html
Copyright © 2020-2023  润新知