Generate Parentheses LeetCode solution in C++
1class Solution {2private:3void solve(int cnt1, int cnt2, int n, vector<string> &ans, string &op, int ind) {4if (ind >= n * 2) {5ans.push_back(op);6return;7}8if (cnt1 < n and ind < n * 2 - 1) {9op += '(';10solve(cnt1 + 1, cnt2, n, ans, op, ind + 1);11op.pop_back();12}1314if (cnt2 < cnt1 and ind > 0) {15op += ')';1617solve(cnt1, cnt2 + 1, n, ans, op, ind + 1);18op.pop_back();19}20}2122public:23vector<string> generateParenthesis(int n) {24string op = "";25vector<string> ans;26solve(0, 0, n, ans, op, 0);27return ans;28}29};