题目描述
给 n 对小括号,求所有合法的排列组合。
题目分析
递归搜索
无论何时,都能添加左括号;
当剩余左括号小于剩余右括号时,才能添加右括号。
代码
#include <iostream>
#include <vector>
class Solution {
public:
std::vector<std::string> generateParenthesis(int n) {
result.clear();
dfs(0, n, n);
return result;
}
void dfs(int ptr, int l, int r) {
if (l == 0 && r == 0) {
str[ptr] = '
近期评论