括号的匹配方法
来源:互联网 发布:asp源码 自助建站 编辑:程序博客网 时间:2024/06/04 18:32
输入括号的数目,输出括号的各种合法匹配样式 如
输入 2
输出
( ())
()()
据说这是一道某公司的面试题,我们先来分析一下。括号匹配有合法有的不合法 如 (()))( 这样就不是合法的匹配样式。为了避免这种情况的出现,记录当前左括号的个数和右括号的个数,使右括号的个数不大于左括号的个数。主要思想类似于0-1背包问题,当进行到某一步的时候 有两种方法:放'(' 和 放 ')'
void maching(int left,int right,int sum,vector<char> bracket){if (left==sum&&right==sum) //如果左边和右边都为要匹配的个数,则输出结果{vector<char>::iterator iter=bracket.begin();for ( ;iter!=bracket.end();iter++) {cout<<*iter<<' ';}cout<<endl;return ;}if (left<=sum){bracket.push_back('('); //放入左括号,然后递归maching(left+1,right,sum,bracket);bracket.pop_back(); //递归后弹出左括号}if (left>right&&left<=sum){bracket.push_back(')');maching(left,right+1,sum,bracket);bracket.pop_back();}}int main(int argc, char* argv[]){vector<char> bracket; //记录当前的匹配样式int num;cin>>num; //输入括号的个数 maching(0,0,num,bracket);return 0;}
- 括号的匹配方法
- 括号匹配的方法
- 括号的匹配,顺序栈方法
- 括号匹配的检验
- 括号的匹配检验
- 括号匹配的检验
- 括号的匹配问题
- 括号匹配的检验
- 简单的括号匹配
- 括号匹配的检验
- 括号的匹配
- 简单的括号匹配
- 匹配括号的算法
- 括号的匹配
- 括号的匹配
- 括号匹配的检验
- 【7012】括号的匹配
- 括号的匹配
- 深入探讨用位掩码代替分支(5):C#2010速度测试
- jquery中选择radio的值
- jsp实现文件下载
- 让edtftpnet也支持中文文件名
- 流程控制语法1
- 括号的匹配方法
- gem install thin
- MFC设置对话框的焦点
- 前台与后台交互时,中文乱码问题
- 手机操作系统2012年3月份最新排名
- 从Trie树(字典树)谈到后缀树
- 再看C语言中的宏定义
- 在Linux下安装JDK及环境设置
- poj 1513 Scheduling Lectures