#include <stack> #include <string> #include <vector> #include <iostream> using namespace std; class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param n int整型 * @return string字符串vector */ void dfs(vector<string>& v, string str, stack<char> str_l, stack<char> str_r, int n) { if (str_l.size() == n && str_r.size() == n) { v.emplace_back(str); return; } if (str_l.size() < n) { str_l.emplace(')'); dfs(v, str + "(", str_l, str_r, n); str_l.pop(); } if (str_r.size() < n && str_l.size() > str_r.size()) { str_r.emplace(')'); dfs(v, str + ")", str_l, str_r, n); str_r.pop(); } } vector<string> generateParenthesis(int n) { // write code here vector<string> v; string str = ""; stack<char> str_l; stack<char> str_r; dfs(v, str, str_l, str_r, n); return v; } };