How to print all possible balanced parentheses for an expression?

前端 未结 9 1905
被撕碎了的回忆
被撕碎了的回忆 2020-12-15 11:41

For example, with elements a,b,c,d, there are 5 possible ways to take neighboring elements and reduce them into a single element, where exactly two elements mus

9条回答
  •  孤街浪徒
    2020-12-15 11:59

    import java.util.ArrayList;
    
    
    public class Parantheses {
    
        private ArrayList parStringList;
        private int total;
    
        public void exploreParantheses(String parString,int leftCnt,int rightCnt)
        {
            if (leftCnt < total)
            {
                exploreParantheses(parString + "(", leftCnt+1, rightCnt);
            }
            if ((rightCnt < total) &&(rightCnt < leftCnt))
            {
                exploreParantheses(parString + ")", leftCnt, rightCnt+1);
            }
            else if (rightCnt == total)
            {
                parStringList.add(parString);
            }
        }
        public ArrayList generateParanthesis(int numPars)
        {
            this.total = numPars;
            this.parStringList = new ArrayList();
            exploreParantheses("", 0, 0);
            return this.parStringList;
        }
        public static void main(String args[])
        {
            ArrayList par;
            par = (new Parantheses()).generateParanthesis(6);
            for (String str: par)
                System.out.println(str);
        }
    }
    

提交回复
热议问题