File tree Expand file tree Collapse file tree 2 files changed +53
-0
lines changed
lcof2/剑指 Offer II 092. 翻转字符 Expand file tree Collapse file tree 2 files changed +53
-0
lines changed Original file line number Diff line number Diff line change @@ -180,6 +180,35 @@ function minFlipsMonoIncr(s: string): number {
180
180
}
181
181
```
182
182
183
+ #### Swift
184
+
185
+ ``` swift
186
+ class Solution {
187
+ func minFlipsMonoIncr (_ s : String ) -> Int {
188
+ let n = s.count
189
+ var left0 = 0 , right0 = 0
190
+ let chars = Array (s)
191
+
192
+ for char in chars {
193
+ if char == " 0" {
194
+ right0 += 1
195
+ }
196
+ }
197
+
198
+ var ans = min (right0, n - right0)
199
+
200
+ for i in 1 ... n {
201
+ let x = chars[i - 1 ] == " 0" ? 0 : 1
202
+ right0 -= x ^ 1
203
+ left0 += x ^ 1
204
+ ans = min (ans, i - left0 + right0)
205
+ }
206
+
207
+ return ans
208
+ }
209
+ }
210
+ ```
211
+
183
212
<!-- tabs: end -->
184
213
185
214
<!-- solution: end -->
Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ func minFlipsMonoIncr( _ s: String ) -> Int {
3
+ let n = s. count
4
+ var left0 = 0 , right0 = 0
5
+ let chars = Array ( s)
6
+
7
+ for char in chars {
8
+ if char == " 0 " {
9
+ right0 += 1
10
+ }
11
+ }
12
+
13
+ var ans = min ( right0, n - right0)
14
+
15
+ for i in 1 ... n {
16
+ let x = chars [ i - 1 ] == " 0 " ? 0 : 1
17
+ right0 -= x ^ 1
18
+ left0 += x ^ 1
19
+ ans = min ( ans, i - left0 + right0)
20
+ }
21
+
22
+ return ans
23
+ }
24
+ }
You can’t perform that action at this time.
0 commit comments