题目:有n个括号,输出所有正确的括号组合括号组合个数:根据卡特兰数原理,总共的括号组合数是C(2n)(n)/(n+1)分析:可以模拟左右括号进出栈的情况计算所有正确的括号组合,如果有剩余的左括号,在任何时刻都可以进栈,栈中有未匹配的左括号时(进栈的左括号数大于右括号数),右括号可以进栈。当所有括号都进栈时,便可得到一个括号组合。
static int pairCount = 0; //brackets中是当前括号的匹配情况, //bracketCount是brackets中已有的括号数目, //leftBrackets是剩余的左括号数目, //rightBrackets是剩余的右括号数目 //左括号可以随时放入brackets中,但是右括号只能在剩余数目大于左括号时才能放入brackets中 static void GenPairCore(char* brackets, int bracketCount, int leftBrackets, int rightBrackets){ //没有剩余的括号,此时输出一个组合 if(leftBrackets==0 && rightBrackets==0){ cout<
输出所有括号组合
最新推荐文章于 2022-03-20 09:45:18 发布
![](https://img-home.csdnimg.cn/images/20240611030827.png)