LeetCode-22 Generate Parentheses(合法括号情况)

来源:互联网 发布:sap主数据是什么意思 编辑:程序博客网 时间:2024/06/15 10:26

LeetCode-22 Generate Parentheses(合法括号情况)

 

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

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

"((()))", "(()())", "(())()", "()(())", "()()()"

 

public class Solution {    public List<String> generateParenthesis(int n) {    List<String> list = new ArrayList<String>();    generate("",n,n,list);    return list;    }    public static void generate(String str,int left,int right,List<String> list){    if (left > 0) {    generate(str+'(',left-1,right,list);}    if (left < right) {    generate(str+')',left,right-1,list);}    if (left == 0 && right == 0 ) {    list.add(str);}    }}


Runtime: 242 ms

分析:貌似没什么好分析的。。根据情况递归处理,只要左括号没用完,就可以添加左括号。右括号的添加条件是 已经添加的左括号要比已经添加的右括号多,。其实不太需要解释。。看代码比较好理解吧。。最后括号添加完了就输出。。

 

0 0
原创粉丝点击