输出n对括号所有有效的匹配 java实现

来源:互联网 发布:淘宝的网商银行贷款吗 编辑:程序博客网 时间:2024/05/21 12:45


原题 为 :Print all combinations of balanced parentheses

input: 3 (e.g., 3 pairs of parentheses)
output: ()()(), ()(()), (())(), ((()))

根据提议分析。我们先取n=3.画出所有的情况。
代码
package parenthesis;public class Parenthesis {static void printParenthesis(int pos , int n , int open ,int close ,char[] buffer){//System.out.println("step"+pos+" open is : "+ open + "close is :" + close);//System.out.println(new String(buffer));if(close == n){//System.out.println("over");System.out.println(new String(buffer));return;}if(open >close){buffer[pos]='}';printParenthesis(pos+1, n, open, close+1, buffer);}if(open <n){buffer[pos] = '{';printParenthesis(pos+1, n, open+1, close, buffer);}}public static void main(String[] args) {// TODO Auto-generated method stub//System.out.println("012142");int  n = 4;char[] cs = new char[8];printParenthesis(0, 4, 0, 0, cs);//System.out.println("012143");}}

0 0
原创粉丝点击