您的位置:首页 > 其它

四对括号可以有多少种匹配排列方式?比如两对括号可以有两种:()()和(())

2012-08-19 19:02 337 查看
其实就是一个排列问题,唯一的区别是,需要注意右括号的数量不能超过左括号。

#include <string>
void BracesHelper(int left, int right, int cur, int size,std::string output)
{
if(size == right)
{
printf("%s",0,output.c_str());
return;
}
for(int i = cur; i < size; ++i)
{
output.append("( ");
left++;
if(left < size)
{
BracesHelper(left,right,i + 1,size,output);
}
if(left >= right)
{
output.append(") ");
right++;
BracesHelper(left,right,i + 1,size,output);
}
}
}
void Braces(int N)
{
std::string output;
BracesHelper(0,0,0,N,output);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐