LeetCode 22. Generate Parentheses

    xiaoxiao2022-07-14  184

    LeetCode 22. Generate Parentheses

    DescriptionExampleCodeConclusion

    Description

    Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.

    Example

    For example, given n = 3, a solution set is:

    [ "((()))", "(()())", "(())()", "()(())", "()()()" ]

    Code

    java import java.util.LinkedList; class Solution { List<String> result; public void dfs(int n, int cnt, String str) { if(str.length() == 2*n) { result.add(str); return ; } if(cnt < n) { dfs(n, cnt+1, str+"("); } if(str.length() < 2*cnt) { dfs(n, cnt, str+")"); } } public List<String> generateParenthesis(int n) { result = new LinkedList<>(); if(n > 0) dfs(n, 0, ""); return result; } } python class Solution: def generateParenthesis(self, n: int) -> List[str]: list = [] def dfs(n, cnt, s): if len(s) == 2*n: list.append(s) return if cnt < n: dfs(n, cnt+1, s+"(") if len(s) < 2*cnt: dfs(n, cnt, s+")") if n > 0: dfs(n, 0, "") return list Others’ Solutionpython class Solution(object): def generateParenthesis(self, n): def generate(p, left, right, parens=[]): if left: generate(p + '(', left-1, right) if right > left: generate(p + ')', left, right-1) if not right: parens += p, return parens return generate('', n, n)

    Conclusion

    py的嵌套函数挺好用大佬的py版本写的很简洁
    最新回复(0)