cswork / libraryOpen practice workspace

Coding questions · ByteDance

Validate a bracket string

This question evaluates understanding of stack data structures, string parsing, and matching logic for balanced brackets and parentheses. It is commonly asked in technical interviews within the Coding & Algorithms domain to assess the ability to produce correct and efficient bracket-matching logic, testing practical application of data-structure implementation alongside conceptual understanding of stack behavior and edge-case handling.

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

A string is valid if:

  1. Every opening bracket has a corresponding closing bracket of the same type.
  2. Brackets are closed in the correct order.
  3. Every closing bracket matches the most recent unmatched opening bracket.

Return true if s is valid; otherwise return false.

Example:

  • Input: "()[]{}" → Output: true
  • Input: "([)]" → Output: false

Validate a bracket string

Constraints

  • 1 <= s.length <= 10^4 (the empty string is also considered valid).
  • s consists only of the characters '(', ')', '{', '}', '[' and ']'.

Hints

  1. Use a stack. Push every opening bracket as you encounter it.
  2. When you see a closing bracket, it must match the bracket on top of the stack — if the stack is empty or the top does not match, the string is invalid.
  3. After scanning the whole string, the string is valid only if the stack is empty (no unmatched openers remain).