四对括号可以有多少种匹配排列方式?

原创 2012年03月26日 17:57:23
46.搜狐(运算):
四对括号可以有多少种匹配排列方式?比如两对括号可以有两种:()()和(())

#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 1;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

微软100题第46题:四对括号可以有多少种匹配排列方式?

题目:四对括号可以有多少种匹配排列方式?比如两对括号可以有两种:()()和(()) 分析题目可以得出两个限制条件,a:左右括号数量相同; b:从左往右数,右括号数量不能大于左括号。 方法1...

微软100题(46)括号的匹配方式

题目: 四对括号可以有多少种匹配排列方式?比如两对括号可以有两种:()()和(()) 这道题是典型的卡特兰数题目,这类题目包括,二叉树的枚举、多边形分成三角形的个数、圆括弧插入公式中的方法...

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

其实就是一个排列问题,唯一的区别是,需要注意右括号的数量不能超过左括号。 #include void BracesHelper(int left, int right, int cur, int...

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

#include #include using namespace std; int howMany1s(unsigned int num) { int count=0; for(i...

四对括号可以有多少种匹配排列方式-新解法

该题源自搜狐,面试题还是笔试题就不知道了。网上已经有很多关于此题的解法,下面是我的解法,欢迎讨论。              四对括号() 那么有4个 右括号“)”,——)——)——)——),该题可演...

卡特兰数定义及其几个常用的应用(附例子"括号匹配"代码)+应用总结

1.定义:卡特兰数:规定h(0)=1,而h(1)=1,h(2)=2,h(3)=5,h(4)=14,h(5)=42,h(6)=132,h(7)=429,h(8)=1430,h(9)=4862,h(10)...

神奇数

给出一个区间[a, b],计算区间内“神奇数”的个数。 神奇数的定义:存在不同位置的两个数位,组成一个两位数(且不含前导0),且这个两位数为质数。 比如:153,可以使用数字3和数字1组成13,1...

括号匹配问题与经典笔试面试题目解析

括号匹配问题是用“栈”这种数据结构来解决的一道典型问题,本文由此引申,谈到了Leetcode中多道与此有关的问题或变种题,这是笔试面试中非常常见的一种类型题目。

POJ 2955-Brackets(括号匹配-区间DP)

Brackets Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5484   Acc...

括号的匹配方法

输入括号的数目,输出括号的各种合法匹配样式 如 输入 2 输出   ( ()) ()() 据说这是一道某公司的面试题,我们先来分析一下。括号匹配有合法有的不合法 如 (()))( 这样就不是...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)