Skip to content

Latest commit

 

History

History
45 lines (29 loc) · 1.34 KB

0022-generate-parentheses.adoc

File metadata and controls

45 lines (29 loc) · 1.34 KB

22. Generate Parentheses

{leetcode}/problems/generate-parentheses/[LeetCode - Generate Parentheses^]

Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.

For example, given n = 3, a solution set is:

[
  "",
  ")(",
  "))()",   "()((",
  "()()()"
]

解题分析

{image_attr}

使用回溯法解题时,需要关注的一个点是,在递归调用时,为了保证结果是有效的括号对,则添加的闭区间符号不能多于开区间符号。也就是,保证添加在添加一个闭区间符号之前,要先添加了对应的开区间符号。所以,就要注意闭区间的判断,是跟开区间大小判断,而不是括号数量。并不是所有的排列组合都符合我们的需求。

{image_attr}
{image_attr}
link:{sourcedir}/_0022_GenerateParentheses.java[role=include]

思考题

有机会思考尝试一下广度优先遍历。