一,题目
四对括号可以有多少种匹配排列方式?比如两对括号可以有两种:()()和(())
二,解答
解法一:左右括号成一对则抵消
可以将左括号看成1右括号看成
-1,然后对8个数进行全排列
对每个排列判断,是否符合条件,逐个相加,sum>=0直到遍历完该序列,符合条件则count++
如果出现sum<0则失败
解法二:采用八位bit,从0000
0000 到 1111 1111遍历,遇到0加
-1遇到1加
1
如果加完该序列所有位等于0,且递加过程中sum始终大于零则符合条件
三,源码
#include<iostream>
#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=4;
MatchNums(n,n,v);
return 1;
}
分享到:
相关推荐
4. 比例计算:第四题中,根据100公里需要8升汽油,可以推算出1公里需要0.08升汽油,而1升汽油可以行驶12.5公里。 5. 数的性质:第五题考察数字与钥匙匹配,根据题目描述,一把钥匙可以打开4把锁,这意味着这把钥匙...
#### 十四、正则表达式匹配与搜索 1. **Match与Search**: - `match()`方法尝试从字符串的起始位置匹配模式。 - `search()`方法在整个字符串范围内搜索模式。 - `search()`方法更适用于查找整个字符串内的任意位置...
4. 第四题涉及格式化输出,`printf("%2d\n", a)`中的`%2d`表示输出一个整数,至少占2位,但`a`的值大于2位,因此按实际宽度输出,结果是1234。 5. 第五题考察了格式化输出的精度控制,`printf`函数的参数应匹配格式...
11. **除法的余数**:选择题第一题考察除法的余数,除数是9,余数最大是8。 12. **简便运算**:第二题通过347-98的简便计算,可以是347-100+2。 13. **乘法结果末尾0的个数**:第三题确定使450×□的积末尾有两个0...
这篇文档是针对人教版一年级数学下册第六单元的一份测试题,主要涵盖了基础的数学概念和运算规则,包括加法、减法、比较大小、理解数位以及解决实际问题等知识点。 一、填空题 1. 这题考察的是连续加数,即3连续加3...
16. **利润计算**:第十六题涉及折扣和利润率。标价的九折出售仍获利20%,设标价为x,则x × 0.9 = 21 × (1 + 20%),解得x = 27元。 17. **盈亏计算**:第十七题中,甲商品盈利25%,乙商品亏损10%。甲商品盈利1560...
10. 数字推理:第十一题需要根据给定的加法算式,通过逻辑推理找出匹配的括号选项。 通过这些题目,孩子们不仅可以巩固数学基础知识,还能提升逻辑推理、问题解决和观察分析等能力,对二年级的学生来说是非常有益的...
4. **正方体的展开图**:第四题涉及到正方体的展开图,需要理解正方体六个面的关系,以及展开图中相邻面的关系,根据题目条件,填充数字使其满足相对面互为相反数。 5. **代数和几何结合**:第五题中,小红购买珠子...
习题可能涵盖栈的应用,如表达式求值、括号匹配;队列的应用,如打印机队列、银行服务等。答案将解析这两种结构的操作特性及其在实际问题中的应用。 四、第四章 串 串是字符序列,习题可能涉及串的基本操作,如子串...
这部分要求在括号中填写适当的长度单位,比如厘米、米等,以匹配所描述的物体的大小。 四、比较长度: 这些是比较题,要求学生根据单位和数值判断长度之间的关系,例如1米是否大于90厘米,2米是否等于200厘米等。 ...
4. 逻辑推理:第四题是一道事件排序题,需要考生按照逻辑顺序排列一系列事件,如温度下降、树木被风吹倒等,这考察逻辑思维和因果关系的理解。 5. 地理经济:第五题介绍大亚湾的地理优势及其经济发展,强调了其作为...
4. 项目管理流程:第四题是关于项目管理的顺序,正确流程是从提交可行性报告开始,经过项目组组建、刻苦攻关,然后获得批准和资金,最终进行项目验收。这里测试了考生对于项目管理流程的认识。 5. 医疗检查的伦理与...
中间代码生成是编译过程的第四步,负责将语法树转换为中间代码。中间代码是一种平台独立的代码,可以在不同的机器上运行。在中间代码生成过程中,编译器会将语法树转换为中间代码,以便于后续的代码优化和目标代码...
"组合数学习题答案(第三版)-04.12.6"可能包含了第四章第十二节第六题的解答。通过这个答案,读者可以了解到如何应用上述概念来解决实际问题,加深对组合数学的理解。解答中的详细步骤可以帮助学生检查自己的解题过程...
第四题涉及到绝对值的比较和加法。如果一个数的绝对值小于另一个数的绝对值,它们的和可能是正数(如果符号相同)或负数(如果符号相反)。不可能是零,因为至少有一个数的绝对值不为零。 5. 相反数与绝对值: 第五...
4. **最大温差的计算**:第四题是实际问题中的数学应用,要求找出四天中温差最大的一天。这需要比较每天的最高气温与最低气温之差,具体数值需要查看图表信息才能得出,题目中未提供具体数据。 5. **合并同类项**:...
**知识点解析**: 第四题考查了链式队列出队操作中尾指针的变化情况。在链式队列中,出队操作通常会改变头指针,而对于尾指针的变化,只有当队列中仅剩一个元素或者队列变为空时才会发生变化。因此,正确答案是A,即...
第四个选择题提到了软件开发过程中需求分析阶段产生的主要文档。 **详细解析:** - 在软件开发的过程中,需求分析阶段会产生多种类型的文档,但最主要的是《软件需求规格说明书》(Software Requirements ...
4. **基础计算**:第四题涉及乘法和加法的混合运算,测试学生的基础计算技能。 5. **列综合算式**:第五题让学生理解并运用除法和加法的组合,例如6与12的和除以3的商。 6. **比较大小**:第六题训练学生的比较...