输入N对括号,输出正确的配对组合

package com.mianshi.ms;
import java.util.Stack;

/** 
 * 类说明 输入N对括号,输出正确的配对组合
 */
public class NPair {

    public static Stack<String> doCompute(int N){
        Stack<String > stack=new Stack<String>();
        if(N==1){
            stack.push("()");
            return stack;
        }
        Stack<String> stack2=doCompute(N-1);
        while(stack2.size()>0){
            String valString=stack2.pop();
            stack.push("("+valString+")");
            stack.push("()"+valString);
            if(!("()"+valString).equals(valString+"()")){
                stack.push(valString+"()");
            }
        }
        return stack;
    }
    
    public static void main(String[] args) {
        Stack<String> stack=new Stack<String>();
        int N=3;
        stack=doCompute(N);
        for(String val:stack){
            System.out.println(val);
        }
    }
}
原文地址:https://www.cnblogs.com/waka401/p/2635271.html