From 380de08ffefa250654d15a81a5eb37055fc88dca Mon Sep 17 00:00:00 2001 From: Lanre Adedara Date: Tue, 30 Apr 2024 10:50:26 +0100 Subject: [PATCH] Swift Implementation for LCCI 08.09 --- lcci/08.09.Bracket/README.md | 25 +++++++++++++++++++++++++ lcci/08.09.Bracket/README_EN.md | 25 +++++++++++++++++++++++++ lcci/08.09.Bracket/Solution.swift | 22 ++++++++++++++++++++++ 3 files changed, 72 insertions(+) create mode 100644 lcci/08.09.Bracket/Solution.swift diff --git a/lcci/08.09.Bracket/README.md b/lcci/08.09.Bracket/README.md index 13d5c5286127c..f742aa71f1f28 100644 --- a/lcci/08.09.Bracket/README.md +++ b/lcci/08.09.Bracket/README.md @@ -190,6 +190,31 @@ var generateParenthesis = function (n) { }; ``` +```swift +class Solution { + private var ans: [String] = [] + private var n: Int = 0 + + func generateParenthesis(_ n: Int) -> [String] { + self.n = n + dfs(l: 0, r: 0, t: "") + return ans + } + + private func dfs(l: Int, r: Int, t: String) { + if l > n || r > n || l < r { + return + } + if l == n && r == n { + ans.append(t) + return + } + dfs(l: l + 1, r: r, t: t + "(") + dfs(l: l, r: r + 1, t: t + ")") + } +} +``` + diff --git a/lcci/08.09.Bracket/README_EN.md b/lcci/08.09.Bracket/README_EN.md index 034e23dfc789c..c8df4900e0fe3 100644 --- a/lcci/08.09.Bracket/README_EN.md +++ b/lcci/08.09.Bracket/README_EN.md @@ -197,6 +197,31 @@ var generateParenthesis = function (n) { }; ``` +```swift +class Solution { + private var ans: [String] = [] + private var n: Int = 0 + + func generateParenthesis(_ n: Int) -> [String] { + self.n = n + dfs(l: 0, r: 0, t: "") + return ans + } + + private func dfs(l: Int, r: Int, t: String) { + if l > n || r > n || l < r { + return + } + if l == n && r == n { + ans.append(t) + return + } + dfs(l: l + 1, r: r, t: t + "(") + dfs(l: l, r: r + 1, t: t + ")") + } +} +``` + diff --git a/lcci/08.09.Bracket/Solution.swift b/lcci/08.09.Bracket/Solution.swift new file mode 100644 index 0000000000000..a9cbb24aab297 --- /dev/null +++ b/lcci/08.09.Bracket/Solution.swift @@ -0,0 +1,22 @@ +class Solution { + private var ans: [String] = [] + private var n: Int = 0 + + func generateParenthesis(_ n: Int) -> [String] { + self.n = n + dfs(l: 0, r: 0, t: "") + return ans + } + + private func dfs(l: Int, r: Int, t: String) { + if l > n || r > n || l < r { + return + } + if l == n && r == n { + ans.append(t) + return + } + dfs(l: l + 1, r: r, t: t + "(") + dfs(l: l, r: r + 1, t: t + ")") + } +}