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.
  3. Every close bracket has a corresponding open bracket of the same type.

Example 1:

  • Input: s = β€œ()”
  • Output: true

Example 2:

  • Input: s = β€œ()[]{}”
  • Output: true

Example 3:

  • Input: s = β€œ(]”
  • Output: false

Example 4:

  • Input: s = β€œ([])”
  • Output: true

Constraints:

  • 1 <= s.length <= 104
  • s consists of parentheses only β€˜()[]{}’.