LeetCode 回溯专题-字符串
JAVA的字符串是一个不可改的对象,如果要回溯,请使用stringbuffer
22. 括号生成
数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。
这一题是标准的回溯问题,我们可以分析一下,想要括号串匹配,因为只有小括号,所以只要保证左右括号数目相等即可,我们回溯是逐步增加字符数目,在这个过程中的任意一步,都要保证左括号数目>=右括号数目,否则就不合法,就要剪枝。只要左括号、右括号还有剩余,我们就在原字符串基础后加一个左/右括号,然后再继续递归,等到左右括号数都等于n则产生了符合要求的字符串
例如一颗二叉树,根节点为空,左结点为"(",右结点为")",右括号数目大于左括号数目,直接剪枝,然后继续递归左结点即可
public class Solution {
public List
List
if (n == 0)
共有 0 条评论