【微软谷歌面试100题--【46】N对括号可以有多少种匹配排列方式
2012-09-05 21:28
731 查看
题46
N对括号可以有多少种匹配排列方式?比如两对括号可以有两种:()()和(())主要的思想还是递归!
#include "stdafx.h"
#include<iostream>
//#include<cassert>
#include <vector>
using namespace std ;
void Print(vector<char> v)
{
for (vector<char>::iterator beg=v.begin();beg!=v.end();++beg)
cout<<*beg<<" ";
cout<<endl;
}
void MatchNums(int nSize,int nLen,vector<char> &v)
{
int nLeftBrackets=0;
int nRightBrackets=0;
for (vector<char>::iterator beg=v.begin();beg!=v.end();++beg)
{
if(*beg=='(')
nLeftBrackets++;
else
nRightBrackets++;
if(nRightBrackets>nLeftBrackets)
return;
if(nLeftBrackets+nRightBrackets==nSize&&nLeftBrackets==nRightBrackets)
Print(v);
}
if (nLen>0)
{
v.push_back('(');
MatchNums(nSize,nLen-1,v);
v.pop_back();
v.push_back(')');
MatchNums(nSize,nLen-1,v);
v.pop_back();
}
}
int main()
{
vector <char> v;
int n=6;
MatchNums(n,n,v);
return 0;
}
相关文章推荐
- 微软100题第46题:四对括号可以有多少种匹配排列方式?
- 算法习题46:四对括号可以有多少种匹配排列方式?比如两对括号可以有两种:()()和(())
- 46 四对括号可以有多少种匹配排列方式
- 46.搜狐:四对括号可以有多少种匹配排列方式
- 四对括号可以有多少种匹配排列方式?
- 四对括号可以有多少种匹配排列方式
- 四对括号可以有多少种匹配排列方式?比如两对括号可以有两种:()()和(())
- 四对括号可以有多少种匹配排列方式?比如两对括号可以有两种:()()和(())
- 四对括号可以有多少种匹配排列方式?比如两对括号可以有两种:()()和(())
- 【编程题目】四对括号可以有多少种匹配排列方式?比如两对括号可以有两种:()()和(())
- n对括号可以有多少种匹配排列方式(算法面试题)
- 微软100题(46)括号的匹配方式
- 四对括号可以有多少种匹配排列方式?比如两对括号可以有两种:()()和(())
- 四对括号可以有多少种匹配排列方式?
- N对括号可以有多少种匹配排列方式
- 四对括号可以有多少种匹配排列方式-新解法
- n对括号有多少种匹配排列方式
- n对括号有多少种匹配排列方式
- 微软、谷歌、百度等公司经典面试100题[第1-60题]
- 打印所有括号匹配排列方式