https://leetcode-cn.com/problems/generate-parentheses/
var result = [String]()
func generateParenthesis(_ n: Int) -> [String] {
backtrack(result, "", 0, 0, n)
return result
}
func backtrack(_ arr: [String], _ curStr: String, _ leftCount: Int, _ rightCount: Int, _ n: Int) {
if curStr.count == n * 2 {
result.append(curStr)
return
}
if leftCount < n {
backtrack(arr, curStr + "(", leftCount + 1, rightCount, n)
}
if rightCount < leftCount {
backtrack(arr, curStr + ")", leftCount, rightCount + 1, n)
}
}
网友评论