Skip to content

Commit

Permalink
feat: add solution 2 swift implementation to lcof2 problem: No.097
Browse files Browse the repository at this point in the history
  • Loading branch information
klever34 committed Sep 3, 2024
1 parent 1fdf6c1 commit 5f48817
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 0 deletions.
30 changes: 30 additions & 0 deletions lcof2/剑指 Offer II 097. 子序列的数目/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,36 @@ function numDistinct(s: string, t: string): number {
}
```

#### Swift

```swift
class Solution {
func numDistinct(_ s: String, _ t: String) -> Int {
let m = s.count, n = t.count
let sArray = Array(s)
let tArray = Array(t)

var dp = Array(repeating: Array(repeating: 0, count: n + 1), count: m + 1)


for i in 0...m {
dp[i][0] = 1
}

for i in 1...m {
for j in 1...n {
dp[i][j] = dp[i - 1][j]
if sArray[i - 1] == tArray[j - 1] {
dp[i][j] += dp[i - 1][j - 1]
}
}
}

return dp[m][n]
}
}
```

<!-- tabs:end -->

<!-- solution:end -->
Expand Down
25 changes: 25 additions & 0 deletions lcof2/剑指 Offer II 097. 子序列的数目/Solution.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
class Solution {
func numDistinct(_ s: String, _ t: String) -> Int {
let m = s.count, n = t.count
let sArray = Array(s)
let tArray = Array(t)

var dp = Array(repeating: Array(repeating: 0, count: n + 1), count: m + 1)


for i in 0...m {
dp[i][0] = 1
}

for i in 1...m {
for j in 1...n {
dp[i][j] = dp[i - 1][j]
if sArray[i - 1] == tArray[j - 1] {
dp[i][j] += dp[i - 1][j - 1]
}
}
}

return dp[m][n]
}
}

0 comments on commit 5f48817

Please sign in to comment.