问题可见:https://leetcode.com/problems/generate-parentheses/
描述
给定n对括号,编写一个函数来生成格式正确的括号的所有组合。
例如,给定n = 3,解集是:
1 | [ |
思路:
意题的英文给你n
值,让你找到所有格式正确的圆括号匹配组,中题目给出已经了n = 3
的所有查询查询结果。遇到这种问题,第一直觉就是用到递归或者堆栈,我们选取递归来解决,也就是helper
函数的功能,从参数上来看肯定很好理解了,leftRest
代表还有几个左括号可以用,rightNeed
代表还需要几个右括号才能匹配,初始状态当然是rightNeed = 0, leftRest = n
,递归的终止状态就是rightNeed == 0 && leftRest == 0
,也就是左右括号都已匹配完毕,把然后str
加入到链表中即可。
1 | import java.util.ArrayList; |