22. Generate Parentheses
Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.
Example 1:
Input: n = 3
Output: ["((()))","(()())","(())()","()(())","()()()"]
Example 2:
Input: n = 1
Output: ["()"]
Constraints:
1 <= n <= 8
Solution:
class Solution {
List<String> res;
public List<String> generateParenthesis(int n) {
res = new ArrayList<>();
recur(n, 0, 0, "");
return res;
}
public void recur(int n, int l, int r, String str){
if (l > n || r > n || r > l) {
return;
}
if (l == r && r == n) {
res.add(str);
return;
}