File tree Expand file tree Collapse file tree 2 files changed +65
-0
lines changed Expand file tree Collapse file tree 2 files changed +65
-0
lines changed Original file line number Diff line number Diff line change @@ -254,6 +254,28 @@ var reverseStr = function(s, k) {
254
254
255
255
```
256
256
257
+ Swift:
258
+
259
+ ``` swift
260
+ func reverseStr (_ s : String , _ k : Int ) -> String {
261
+ var ch = Array (s)
262
+
263
+ for i in stride (from : 0 , to : ch.count , by : 2 * k) {
264
+ var left = i
265
+ var right = min (s.count - 1 , left + k - 1 )
266
+
267
+ while left < right {
268
+ (ch[left], ch[right]) = (ch[right], ch[left])
269
+ left += 1
270
+ right -= 1
271
+ }
272
+ }
273
+ return String (ch)
274
+ }
275
+ ```
276
+
277
+
278
+
257
279
258
280
259
281
-----------------------
Original file line number Diff line number Diff line change @@ -264,6 +264,49 @@ javaScript:
264
264
};
265
265
```
266
266
267
+ Swift:
268
+
269
+ ``` swift
270
+ func replaceSpace (_ s : String ) -> String {
271
+ var strArr = Array (s)
272
+ var count = 0
273
+
274
+ // 统计空格的个数
275
+ for i in strArr {
276
+ if i == " " {
277
+ count += 1
278
+ }
279
+ }
280
+ // left 指向旧数组的最后一个元素
281
+ var left = strArr.count - 1
282
+ // right 指向扩容后数组的最后一个元素(这里还没对数组进行实际上的扩容)
283
+ var right = strArr.count + count * 2 - 1
284
+
285
+ // 实际对数组扩容
286
+ for _ in 0 ..< (count * 2 ) {
287
+ strArr.append (" " )
288
+ }
289
+
290
+ while left < right {
291
+ if strArr[left] == " " {
292
+ strArr[right] = " 0"
293
+ strArr[right - 1 ] = " 2"
294
+ strArr[right - 2 ] = " %"
295
+ left -= 1
296
+ right -= 3
297
+ } else {
298
+ strArr[right] = strArr[left]
299
+ left -= 1
300
+ right -= 1
301
+ }
302
+ }
303
+
304
+ return String (strArr)
305
+ }
306
+ ```
307
+
308
+
309
+
267
310
268
311
269
312
-----------------------
You can’t perform that action at this time.
0 commit comments