LeetCode 回溯专题-字符串

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

LeetCode 回溯专题-字符串最先出现在Python成神之路

版权声明:
作者:ht
链接:https://www.techfm.club/p/14058.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>