数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且有效的括号组合。
题解:
1.给一个数字n
2.生成左右括号匹配的字符串
3.结果有多个,以字符串数组方式输出
示例:
输入:n = 3
输出:[ "((()))",
"(()())",
"(())()",
"()(())",
"()()()"]
解题思路:
递归检查所有符合条件的字符组合
-
无效字符组合---》左右剩余括号数量的比较(右括号用的多为无效组合)
-
左右符号都用完---》找到一种有效括号组合方式
-
左右括号都没用完---》深度遍历有效的字符组合
递归过程中记录有效括号组合
C/C++题解:(点击蓝字阅读源码,或前往公众号回复“22”获取)
class Solution {
public:
vector<string> generateParenthesis(int n) {
Java题解:(点击蓝字阅读源码,或前往公众号回复“22”获取)
class Solution {
public List<String> generateParenthesis(int n) {
Python题解:(点击蓝字阅读源码,或前往公众号回复“22”获取)
class Solution(object):
def generateParenthesis(self, n):
""":type n: int:rtype: List[str]"""
更多题解可前往公众号免费获取