Optimal Algorithmic Approach
Backtracking with open/close counters as constraints.
Core Invariants & Edge Cases
- Track open and close counts; open < n → can add '('; close < open → can add ')'
- Base case: string length == 2n
- Produces exactly Catalan(n) strings