#include #include using namespace std; class Solution { public: vector generateParenthesis(int n) { vector v; dfs(v, "", n, n); return v; } void dfs(vector &v, string s, int lc, int rc){ if(lc == 0 && rc == 0){ v.push_back(s); return; } if(lc != 0) dfs(v, s + '(', lc - 1, rc); if(rc != 0 && rc - 1 >= lc){ dfs(v, s + ')', lc, rc - 1); } } };