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:
"((()))", "(()())", "(())()", "()(())", "()()()"
简要思路:
每对()要匹配,刚开始准备用栈,但是效率会比较低,根据其特点可以构成一个二叉树,根节点为空,左节点为‘(’,右节点为‘)’,且要满足有n层,‘(’的个数要始终大于等于‘)’的个数,可以使用深度优先搜寻的思想,根据判断条件进行剪枝,使用递归形式进行代码编写。