leetcode22:Generate Parentheses

来源:互联网 发布:无敌淘宝王无弹窗 编辑:程序博客网 时间:2024/06/09 02:20

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:

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

参考自:http://blog.csdn.net/yutianzuijin/article/details/13161721

设left为剩下的左括号数,right为剩下的又括号数,当left和right都为0时,结束输出结果,当left>0时可以输出左括号,但是能否输出又括号还得看左括号数和右括号数之间的关系,当left>=right时只能输出左括号,当left<right可以输出右括号。

package leetcode;import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class leet22 {public static void main(String[] args) {List<String> result = new ArrayList<String>();String str = new String();leet22 leet = new leet22();leet.recur(3, 3, str, result);System.out.println(Arrays.toString(result.toArray()));}public void recur(int left,int right,String str,List<String> result){if(left==0&&right==0){result.add(str);}if(left>0){recur(left-1,right,str+("("),result);}if(right>0&&left<right){recur(left,right-1,str+(")"),result);}}}



0 0
原创粉丝点击