Skip to content

Latest commit

 

History

History
72 lines (59 loc) · 1.23 KB

01.md

File metadata and controls

72 lines (59 loc) · 1.23 KB

题目地址

https://leetcode.com/problems/valid-parentheses/description

题目描述

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

let try

/**
 * @params{string} s
 * @return{boolean}
 */
function isValid(s) {
  let stack = [];
  const obj = {
    "{": "}",
    "[": "]",
    "(": ")"
  };
  const preArr = ["[", "{", "("];
  const arr = s.split("");
  for (let i = 0; i < arr.length; i++) {
    const cur = arr[i];
    if (preArr.indexOf(cur) > -1) {
      // 当有前置符号 =》 入栈
      stack.push(cur);
    } else {
      const out = stack.pop();
      // 当前的值不匹配于前一个塞进栈的值就返回false
      if (cur !== obj[out]) {
        return false;
      }
    }
  }
  if (stack.length === 0) {
    return true;
  }
  return false;
}