20. Valid Parentheses

Source code notebook Author Update time

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

An input string is valid if:

  1. Open brackets must be closed by the same type of brackets.
  2. Open brackets must be closed in the correct order.

Example 1:

Input: s = "()"
Output: true

Example 2:

Input: s = "()[]{}"
Output: true

Example 3:

Input: s = "(]"
Output: false

Example 4:

Input: s = "([)]"
Output: false

Example 5:

Input: s = "{[]}"
Output: true

Constraints:

  • 1 <= s.length <= 104
  • s consists of parentheses only '()[]{}'.
# @lc code=start
using LeetCode

function is_valid_parentheses(s::String)::Bool
    unclose, left_side = Char[], Dict{Char,Char}(')' => '(', ']' => '[', '}' => '{')
    for i in s
        if i in "([{"
            push!(unclose, i)
        else
            (isempty(unclose) || left_side[i] != unclose[end]) && return false
            pop!(unclose)
        end
    end
    return isempty(unclose)
end

# @lc code=end
is_valid_parentheses (generic function with 1 method)

This page was generated using DemoCards.jl and Literate.jl.