22. Generate Parentheses
代码
class Solution {
public:
std::vector<std::string> generateParenthesis(int n) {
int left = 0, right = 0;
std::vector<std::string> rtn;
helper(rtn, "", n, left, right);
return rtn;
}
void helper(std::vector<std::string> &vecs, std::string tmp, int n, int left,
int right) {
if (left > n || right > n || left < right) {
return;
} else if (left == n && right == n) {
vecs.push_back(tmp);
} else if (left == right) {
helper(vecs, tmp + "(", n, left + 1, right);
} else if (left > right) {
helper(vecs, tmp + "(", n, left + 1, right);
helper(vecs, tmp + ")", n, left, right + 1);
}
}
};
结果
Success
Runtime: 8 ms, faster than 37.79% of C++ online submissions for Generate Parentheses.
Memory Usage: 15 MB, less than 23.47% of C++ online submissions for Generate Parentheses.