Skip to content

Commit e5a6042

Browse files
authored
Merge pull request neetcode-gh#2204 from Ykhan799/main
Create: 0022-generate-parentheses.swift
2 parents 0a923ea + b70eebb commit e5a6042

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

swift/0022-generate-parentheses.swift

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
// Time: O(2^n)
2+
// Space: O(n)
3+
class Solution {
4+
func generateParenthesis(_ n: Int) -> [String] {
5+
var result: [String] = []
6+
generate(n, 0, 0, "", &result)
7+
return result
8+
}
9+
10+
func generate(_ n: Int, _ open: Int, _ close: Int, _ str: String, _ result: inout [String]) {
11+
if open == n && close == n {
12+
result.append(str)
13+
return
14+
}
15+
if open < n {
16+
generate(n, open + 1, close, str + "(", &result)
17+
}
18+
if open > close {
19+
generate(n, open, close + 1, str + ")", &result)
20+
}
21+
}
22+
}

0 commit comments

Comments
 (0)