输入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);
        }
    }
}
posted @ 2012-08-12 17:40  苦逼程序猴  阅读(271)  评论(0编辑  收藏  举报