Skip to content

Latest commit

 

History

History
25 lines (25 loc) · 703 Bytes

22.md

File metadata and controls

25 lines (25 loc) · 703 Bytes

generate-parentheses 生成括号

解法一

剪枝的方式

func generateParenthesis(n int) []string {
    if n ==0 {
        return []string{}
    }
    ma1 := make([]string,0)
    ma(&ma1,"",0,0,n)
    return ma1
}
func ma(ma1 *[]string,result string,left,right,n int) {
    if left == n && right == n {
        *ma1 = append(*ma1,result)
        return
    }
    if left < n {// 此处就是使用的剪枝
        ma(ma1,result+"(",left+1,right,n)
    }
    if right < left && right < n {// 此处就是使用的剪枝 因为不是所有的条件都去递归,而是又选择性质的去递归,这种又选择的方式就是剪枝
        ma(ma1,result+")",left,right+1,n)
    }
}