LeetCode #22
来源:互联网 发布:ubuntu修改用户名 编辑:程序博客网 时间:2024/05/21 18:38
题目描述:
Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.
For example, given n = 3, a solution set is:
[ "((()))", "(()())", "(())()", "()(())", "()()()"]
这道题类似深搜,左括号和右括号即为两种分支,尽可能搜索所有分支的情况,同时还要满足已产生的current_result中左括号大于右括号,所以剩余右括号数目大于左括号才能添加右括号,但是只要剩余左括号数目大于0,就可以添加左括号。另外需要注意的是all_result应该是引用传参,这样才能在在findAll递归过程中修改all_result。
class Solution {public: vector<string> generateParenthesis(int n) { vector<string> all_result; string current_result; findAll(all_result,current_result,n,n); return all_result; } void findAll(vector<string>& all_result,string current_result,int left,int right) { if(left==0&&right==0) { all_result.push_back(current_result); return; } if(left>0) { findAll(all_result,current_result+"(",left-1,right); } if(left<right) { findAll(all_result,current_result+")",left,right-1); } }};
阅读全文
0 0
- LeetCode #22
- LeetCode 22: Generate Parentheses
- LeetCode(22)GenerateParentheses
- [leetcode 22] Valid Parentheses
- LeetCode 22 Surrounded Regions
- [leetcode 22] Generate Parentheses
- LeetCode | #22 Generate Parentheses
- [Leetcode] 22- Generate Parentheses
- LeetCode 22 Generate Parentheses
- [LeetCode 22]Generate Parentheses
- leetcode 22 Generate Parentheses
- LeetCode (22) Word Search
- Leetcode 22 Generate Parentheses
- LeetCode 22 - Generate Parentheses
- Generate Parentheses - LeetCode 22
- leetcode 22 -- Generate Parentheses
- leetcode-22Generate Parentheses
- leetcode 22: Generate Parentheses
- java中的适配器是什么及有什么作用(通熟易懂)
- 基于Mybatis的代码生成器
- 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 B. Coin
- Bootstrap插件(五)——弹出框(popover.js)
- sklearn 数据集(二)
- LeetCode #22
- 2017 ACM西安网络赛 G题 Xor
- 混合高斯模型
- 二叉堆的基本概念与实现
- MySQL RESET MASTER与RESET SLAVE和RESET SLAVE ALL
- javabean总结
- 使用PhantomJS实现模拟登陆(Java爬虫)
- C语言 extern
- 第三周——项目三—求集合并集