v_yanushkovsky

#22 Generate Parentheses

Jul 8th, 2026
18
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.69 KB | None | 0 0
  1.     vector<string> generateParenthesis(int n) {
  2.         vector<string> ans;
  3.         ans.reserve(n*2 + 1);
  4.         string s;
  5.         s.reserve(n*2+1);
  6.         generate(ans, s, 0, 0, n);
  7.         return ans;
  8.     }
  9.  
  10.     void generate(vector<string>& ans, string& s, int open, int close, int n) {
  11.         if (s.size() == 2 * n) {
  12.             ans.push_back(s);
  13.             return;
  14.         }
  15.  
  16.         if (open < n) {
  17.             s.push_back('(');
  18.             generate(ans, s, open + 1, close, n);
  19.             s.pop_back();
  20.         }
  21.  
  22.         if (close < open) {
  23.             s.push_back(')');
  24.             generate(ans, s, open, close + 1, n);
  25.             s.pop_back();
  26.         }
  27.     }
Advertisement
Add Comment
Please, Sign In to add comment