四对括号可以有多少种匹配排列方式?比如两对括号可以有两种:()()和(())
来源:互联网 发布:小米查看支持什么网络 编辑:程序博客网 时间:2024/05/16 12:34
回溯法可以用来求解排列组合问题
回溯法框架
void backtrack (int t){ if (t>n) output(x); else for (int i=f(n,t);i<=g(n,t);i++) { x[t]=h(i); if (constraint(t)&&bound(t)) backtrack(t+1); }}
#include <iostream>using namespace std;//匹配数int num=0;//判断当前n对括号是否匹配bool isMatch(int n,char* bracket){int left_num=0,right_num=0;for(int i=0;i<2*n;++i){if(bracket[i]=='l')left_num++;else if(bracket[i]=='r')right_num++;if(left_num<right_num)return false;}if(left_num==n && right_num==n)return true;elsereturn false;}//回溯法void BracketMatch(int n,int i,char* bracket){if(i==2*n){if(isMatch(n,bracket))num++;return;}else{bracket[i]='l';BracketMatch(n,i+1,bracket);bracket[i]='r';BracketMatch(n,i+1,bracket);}}int main(){int n;cin >>n;char* bracket=new char[2*n];BracketMatch(n,0,bracket);cout <<num<<endl;return 0;}
- 四对括号可以有多少种匹配排列方式?比如两对括号可以有两种:()()和(())
- 四对括号可以有多少种匹配排列方式?比如两对括号可以有两种:()()和(())
- 四对括号可以有多少种匹配排列方式?比如两对括号可以有两种:()()和(())
- 算法习题46:四对括号可以有多少种匹配排列方式?比如两对括号可以有两种:()()和(())
- 四对括号可以有多少种匹配排列方式?
- 四对括号可以有多少种匹配排列方式?
- 四对括号可以有多少种匹配排列方式
- N对括号可以有多少种匹配排列方式
- 46.搜狐:四对括号可以有多少种匹配排列方式
- 四对括号可以有多少种匹配排列方式-新解法
- 46 四对括号可以有多少种匹配排列方式
- 微软100题第46题:四对括号可以有多少种匹配排列方式?
- n对括号可以有多少种匹配排列方式(算法面试题)
- 【微软谷歌面试100题--【46】N对括号可以有多少种匹配排列方式
- n对括号有多少种匹配排列方式
- HDU 5479 Scaena Felix(求一个序列里有多少对括号能够匹配)
- leetcode_22. Generate Parentheses 生成括号,给n对括号,有多少种括号生成方式
- 两个问题:n对括号有多少种匹配方式与与最长递减子序列
- 二叉搜索树转换成有序的双向循环链表(一)
- VB 中with的使用
- 找出字符串中对称的子字符串的最大长度(最长回文)
- maven中添加proguard来混淆代码
- ASP.NET图片上传
- 四对括号可以有多少种匹配排列方式?比如两对括号可以有两种:()()和(())
- android中设置AlertDialog的大小
- 你所不知道的SQL排序方法
- 网络流算法整理
- Linux基本命令
- 【js跨域访问的一些解决方案】
- HDU 1548 A strange lift
- MFC中获取窗口句柄及相关函数
- Android RSS阅读器