您的位置:首页 > 其它

打印出所有可能的括号组合

2012-09-10 13:30 309 查看
以下为递归方法实现

#include <vector>
#include <iostream>

#define N 3

void print(int left, int right, std::vector<char> v)
{
if (left == right && left == N)
{
for (size_t i = 0; i < v.size(); i++)
{
std::cout << v[i];
}
std::cout << std::endl;
return;
}

if (left > right)
{
v.push_back(')');
print(left, right + 1, v);

if (left < N)
{
v.pop_back();
v.push_back('(');
print(left + 1, right, v);
}
}
else
{
v.push_back('(');
print(left + 1, right, v);
}
};

int main()
{
std::vector<char> v;
print(0, 0, v);

return 0;
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐