leetcode解题报告22. Generate Parentheses
来源:互联网 发布:万德数据 编辑:程序博客网 时间:2024/06/17 12:19
leetcode解题报告22. Generate Parentheses
题目地址
难度是medium
题目描述
给定一个整数n,代表左括号的个数,要求返回左括号数为n的所有合法的括号组合字符串。
我的思路
题目直观来看比较简单,我们可以方便地利用stack的后进先出来判断合法的括号字符串,生成一个合法的括号字符串也比较简单。但是难点在于要遍历生成
所有合法的括号字符串,并返回。其实可以发现生成一个合法的括号字符串,每一步在于选择是进栈还是出栈,每一个不同的选择都会导致不同括号字符串生成。这样我们可以采取递归的方式,一次生成过程包括所有可能性,从而得到所有合法的括号字符串。
我的代码
class Solution {public: vector<string> generateParenthesis(int n) { string s; vector<string> result; func(result, n, 0, s); return result; } void func(vector<string>& result, int remain, int stack, string s) { if (stack > 0) { func(result, remain, stack-1, s+')'); } if (remain > 0) { func(result, remain-1, stack+1, s+'('); } if (stack == 0 && remain==0) { result.push_back(s); } }};
阅读官方题解
没有官方题解。
思想核心总结
对用循环不太好解决的问题,可以考虑试一下递归的方法。
阅读全文
0 0
- [leetcode] 22. Generate Parentheses 解题报告
- LeetCode 22. Generate Parentheses 解题报告
- [Leetcode] 22. Generate Parentheses 解题报告
- leetcode解题报告22. Generate Parentheses
- [LeetCode]Generate Parentheses, 解题报告
- 【LeetCode】Generate Parentheses 解题报告
- LeetCode解题报告--Generate Parentheses
- [LeetCode] Generate Parentheses 解题报告
- [LeetCode] Generate Parentheses 解题报告
- Generate Parentheses LeetCode解题报告
- Leetcode #22 Generate Parentheses 创建括号 解题报告
- [leetcode javascript解题]Generate Parentheses
- Leetcode Generate Parentheses 解题思路
- Generate Parentheses——解题报告
- [LeetCode]22.Generate Parentheses
- LeetCode --- 22. Generate Parentheses
- LeetCode 22.Generate Parentheses
- [Leetcode] 22. Generate Parentheses
- 使用Zend Studio或myeclipse做PHP开发的速度优化方法
- AES加密算法(加密文件):Rijndael
- hdu2643
- Linux学习------目录架构
- bzoj1850: Submatrix
- leetcode解题报告22. Generate Parentheses
- POJ 3422 Kaka's Martix Travels 费用流模板
- php 实现信息采集(网页内容抓取)程序代码
- 关于Unity在2D的UGUI和3D模型交错时渲染顺序的一点探讨
- 资源
- 【POJ3009】Curling 2.0(深搜)
- 最小生成树Prim算法理解
- JZOJ 3766. 【BJOI2014】大融合
- 当国家选择是香港时运输方式:EUB、EUB2、SHEUB 中的邮编栏置灰