LeetCode *** 22. Generate Parentheses
来源:互联网 发布:sql to_char和to_date 编辑:程序博客网 时间:2024/05/01 03:04
题目:
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:
"((()))", "(()())", "(())()", "()(())", "()()()"
分析:
其实主要是说代码,我一直喜欢用非递归,认为非递归花费时间多一些,但从我最近刷的题来看,递归更节约时间。
代码:
class Solution {public: vector<string> generateParenthesis(int n) { vector<string> res; if(n<1)return res; stack<string> record; stack<int> recordpreint; stack<int> recordint; record.push("("); recordpreint.push(1); recordint.push(1); while(!record.empty()){ string tmp=record.top(); int tmpint=recordint.top(); int tmppreint=recordpreint.top(); record.pop(); recordint.pop(); recordpreint.pop(); if(tmp.length()==n*2)res.push_back(tmp); else { if(tmppreint<n){ record.push(tmp+'('); recordint.push(tmpint+1); recordpreint.push(tmppreint+1); } if(tmpint>0){ record.push(tmp+')'); recordint.push(tmpint-1); recordpreint.push(tmppreint); } } } return res; }};
class Solution {public: vector<string> res; vector<string> generateParenthesis(int n) { helper("",n,0); return res; } void helper(string s,int left,int right){ if(left==0&&right==0) res.push_back(s); else{ if(left)helper(s+'(',left-1,right+1); if(right)helper(s+')',left,right-1); } } };
0 0
- [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. Generate Parentheses
- Leetcode-22.Generate Parentheses
- [leetcode] 22. Generate Parentheses
- 22. Generate Parentheses LeetCode
- 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. Generate Parentheses
- LeetCode 22. Generate Parentheses
- 二叉排序树查找不成功的平均查找长度
- 如何保护你的手机免受黑客入侵
- hibernate ORM映射:双向多对一
- spring security:自定义认证成功处理器
- Ubuntu下通过PPA方式安装Java 8和自动配置环境变量
- LeetCode *** 22. Generate Parentheses
- UVA 11722
- hdu 1556 Color the ball
- 朴素的模式匹配算法
- UI布局学习
- 算法_动态规划_乘法表问题
- 装饰者模式
- Windows 服务应用程序
- PorterDuffXfermode自定义View实现圆角图片