Skip to content

Commit da87ff9

Browse files
Merge pull request youngyangyang04#674 from YDLIN/master
添加0541. 反转字符串II Swift版本
2 parents 582ff61 + 8d1b15d commit da87ff9

File tree

2 files changed

+65
-0
lines changed

2 files changed

+65
-0
lines changed

problems/0541.反转字符串II.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,28 @@ var reverseStr = function(s, k) {
254254

255255
```
256256

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+
257279

258280

259281
-----------------------

problems/剑指Offer05.替换空格.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,49 @@ javaScript:
264264
};
265265
```
266266

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+
267310

268311

269312
-----------------------

0 commit comments

Comments
 (0)