PracHub
QuestionsCoachesLearningGuidesInterview Prep

Quick Overview

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.

  • medium
  • Bytedance
  • Coding & Algorithms
  • Software Engineer

Validate a bracket string

Company: Bytedance

Role: Software Engineer

Category: Coding & Algorithms

Difficulty: medium

Interview Round: Technical Screen

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`

Quick Answer: 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`

Constraints

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

Examples

Input: ("()[]{}",)

Expected Output: True

Explanation: Each opening bracket is immediately closed by a matching closing bracket of the same type.

Input: ("([)]",)

Expected Output: False

Explanation: The ')' tries to close '[', the most recent unmatched opener, so the order is wrong.

Input: ("",)

Expected Output: True

Explanation: An empty string has no unmatched brackets, so it is trivially valid.

Input: ("(",)

Expected Output: False

Explanation: The '(' is never closed; the stack is non-empty at the end.

Input: (")",)

Expected Output: False

Explanation: A closing bracket appears with no opener on the stack to match it.

Input: ("{[]}",)

Expected Output: True

Explanation: Properly nested: '[]' closes inside '{}'.

Input: ("([{}])",)

Expected Output: True

Explanation: Deeply nested brackets all close in the correct reverse order.

Input: ("]",)

Expected Output: False

Explanation: A lone closing bracket with an empty stack is invalid.

Input: ("((",)

Expected Output: False

Explanation: Two openers remain unmatched at the end, so the stack is not empty.

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).
Last updated: Jun 26, 2026

Loading coding console...

PracHub

Master your tech interviews with 8,500+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities
  • Student Access

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • AI Coding Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.

Related Coding Questions

  • Elements Occurring More Than n/3 Times in a Sorted Array - Bytedance (medium)
  • Least Frequently Used (LFU) Cache - Bytedance (hard)
  • Course Schedule Feasibility - Bytedance (hard)
  • Find the Best Word for a Query Suffix - Bytedance (hard)
  • Reverse a Singly Linked List - Bytedance (medium)