22. 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:
1 | [ |
题目大意
给定一个数,输出所有的能匹配的结果.
代码
1 | class Solution { |
解答
自己写的解法,首先看到求所有可能的值,想到用深度优先算法,
设置zuo ,you 两个指针,初始值为n,也就是有多少个,每次用一个就减一次.
和以往的DFS不同的地方在于DFS递归是有条件的递归,也就是个数是有限的,
感叹号的地方,不是每一次都要进行递归,而是满足条件才进行递归,
(和死胡同的区别,DFS中最开始两个if语句表示进入到这个胡同中,判断是不是符合的解,
这里感叹号的if表示的是没有这个胡同,但是程序不知道,你要告诉程序没有这个胡同)
Author: corn1ng
Link: https://corn1ng.github.io/2017/12/10/算法/leetcode22/
License: 知识共享署名-非商业性使用 4.0 国际许可协议