LeetCode (22)Generate Parentheses
来源:互联网 发布:手机网络雷达 编辑:程序博客网 时间:2024/05/01 14:51
(22)Generate Parentheses
题目:写出所有n对“(”,“)”能组合成的符合正常规则的字符串。
例如:当n=“3”的时候,答案集为:
[ "((()))" "(()())" "(())()" "()(())" "()()()"]
第一个想法就是直接DFS,很简单的搜一遍就完事了,把所有的可能放入vector里。当然符合规则是最重要的问题,不妨考虑括号的使用情况。
对于n对括号,首先如果字符串内右括弧数量大于左括弧,那么肯定是不对的;如果左边的括号多于右边的括号时,可以放入左括号也可以放入右括号;如果n对括号都用完了也就结束了,可以把字符串放入vector。
但是对于使用数量来说,更容易计算的是剩余数量,所以代码里使用的lef和rig是剩余的左括号和右括号的数量。
下面是代码:
class Solution {public: vector<string> generateParenthesis(int n) { vector<string> s ; generateVector(n,n,"",s); return s; } void generateVector(int lef, int rig, string str, vector<string> &s){ if(lef > rig){ return; } if(lef == 0 && rig == 0){ return s.push_back(str); } else{ if(lef > 0){ string s1 = str; s1 += "("; generateVector(lef-1, rig, s1, s); } if(rig > 0){ string s1 = str; s1 += ")"; generateVector(lef, rig-1, s1, s); } } }};
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
- Leetcode 22 Generate Parentheses
- LeetCode 22 - Generate Parentheses
- Generate Parentheses - LeetCode 22
- leetcode 22 -- Generate Parentheses
- leetcode-22Generate Parentheses
- leetcode 22: Generate Parentheses
- Leetcode#22 Generate Parentheses
- LeetCode(22) Generate Parentheses
- Leetcode 22 Generate Parentheses
- Android中为什么有些变量会以m开头?配置Android Studio识别成员变量的m前缀
- 二叉查找树
- 海明码校验——有关校验位值的确定方法
- Redis内存使用优化与存储
- Python numpy基础知识
- LeetCode (22)Generate Parentheses
- 文章标题
- 友盟做微信登录,签名是一致的但提示不一致
- Harris、SUSAN角点检测Matlab源代码
- View的绘制流程分析之一
- colour_recognition使用总结
- 基于Hibernate和Struts2的用户管理系统小案例
- C++构造函数
- Activity的生命周期详细分析(一)