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:
- Every opening bracket has a corresponding closing bracket of the same type.
- Brackets are closed in the correct order.
- 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
- Use a stack. Push every opening bracket as you encounter it.
- 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.
- After scanning the whole string, the string is valid only if the stack is empty (no unmatched openers remain).