File tree Expand file tree Collapse file tree 2 files changed +53
-0
lines changed Expand file tree Collapse file tree 2 files changed +53
-0
lines changed Original file line number Diff line number Diff line change @@ -200,6 +200,35 @@ function minimumOperations(leaves: string): number {
200200}
201201```
202202
203+ #### Swift
204+
205+ ``` swift
206+ class Solution {
207+ func minimumOperations (_ leaves : String ) -> Int {
208+ let n = leaves.count
209+ let inf = Int .max / 2
210+ var f = Array (repeating : [inf, inf, inf], count : n)
211+ let leavesArray = Array (leaves)
212+
213+ f[0 ][0 ] = leavesArray[0 ] == " r" ? 0 : 1
214+
215+ for i in 1 ..< n {
216+ if leavesArray[i] == " r" {
217+ f[i][0 ] = f[i - 1 ][0 ]
218+ f[i][1 ] = min (f[i - 1 ][0 ], f[i - 1 ][1 ]) + 1
219+ f[i][2 ] = min (f[i - 1 ][1 ], f[i - 1 ][2 ])
220+ } else {
221+ f[i][0 ] = f[i - 1 ][0 ] + 1
222+ f[i][1 ] = min (f[i - 1 ][0 ], f[i - 1 ][1 ])
223+ f[i][2 ] = min (f[i - 1 ][1 ], f[i - 1 ][2 ]) + 1
224+ }
225+ }
226+
227+ return f[n - 1 ][2 ]
228+ }
229+ }
230+ ```
231+
203232<!-- tabs: end -->
204233
205234<!-- solution: end -->
Original file line number Diff line number Diff line change 1+ class Solution {
2+ func minimumOperations( _ leaves: String ) -> Int {
3+ let n = leaves. count
4+ let inf = Int . max / 2
5+ var f = Array ( repeating: [ inf, inf, inf] , count: n)
6+ let leavesArray = Array ( leaves)
7+
8+ f [ 0 ] [ 0 ] = leavesArray [ 0 ] == " r " ? 0 : 1
9+
10+ for i in 1 ..< n {
11+ if leavesArray [ i] == " r " {
12+ f [ i] [ 0 ] = f [ i - 1 ] [ 0 ]
13+ f [ i] [ 1 ] = min ( f [ i - 1 ] [ 0 ] , f [ i - 1 ] [ 1 ] ) + 1
14+ f [ i] [ 2 ] = min ( f [ i - 1 ] [ 1 ] , f [ i - 1 ] [ 2 ] )
15+ } else {
16+ f [ i] [ 0 ] = f [ i - 1 ] [ 0 ] + 1
17+ f [ i] [ 1 ] = min ( f [ i - 1 ] [ 0 ] , f [ i - 1 ] [ 1 ] )
18+ f [ i] [ 2 ] = min ( f [ i - 1 ] [ 1 ] , f [ i - 1 ] [ 2 ] ) + 1
19+ }
20+ }
21+
22+ return f [ n - 1 ] [ 2 ]
23+ }
24+ }
You can’t perform that action at this time.
0 commit comments