Skip to content

Commit 2ddf04f

Browse files
author
zhangrunzhe
committed
右旋字符串 swift版本
1 parent aa9dc7e commit 2ddf04f

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

problems/kamacoder/0055.右旋字符串.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -350,7 +350,29 @@ function reverseStr(s, start, end) {
350350

351351

352352
### Swift:
353+
```swift
354+
func rotateWords(_ s: String, _ k: Int) -> String {
355+
var chars = Array(s)
356+
// 先反转整体
357+
reverseWords(&chars, start: 0, end: s.count - 1)
358+
// 反转前半段
359+
reverseWords(&chars, start: 0, end: k - 1)
360+
// 反转后半段
361+
reverseWords(&chars, start: k, end: s.count - 1)
362+
return String(chars)
363+
}
353364

365+
// 反转start...end 的字符数组
366+
func reverseWords(_ chars: inout [Character], start: Int, end: Int) {
367+
var left = start
368+
var right = end
369+
while left < right, right < chars.count {
370+
(chars[left], chars[right]) = (chars[right], chars[left])
371+
left += 1
372+
right -= 1
373+
}
374+
}
375+
```
354376

355377

356378
### PHP:

0 commit comments

Comments
 (0)