添加剑指Offer58-II.左旋转字符串 Swift版本

This commit is contained in:
YDLIN 2021-08-30 13:17:34 +08:00
parent 588091dd75
commit 969c5c50ea
1 changed files with 28 additions and 0 deletions

View File

@ -214,6 +214,34 @@ var reverseLeftWords = function (s, n) {
};
```
Swift:
```swift
func reverseLeftWords(_ s: String, _ n: Int) -> String {
var ch = Array(s)
let len = ch.count
// 反转区间[0, n - 1]
reverseString(&ch, startIndex: 0, endIndex: n - 1)
// 反转区间[n, len - 1]
reverseString(&ch, startIndex: n, endIndex: len - 1)
// 反转区间[0, len - 1],也就是整个字符串反转
reverseString(&ch, startIndex: 0, endIndex: len - 1)
return String(ch)
}
func reverseString(_ s: inout [Character], startIndex: Int, endIndex: Int) {
var start = startIndex
var end = endIndex
while start < end {
(s[start], s[end]) = (s[end], s[start])
start += 1
end -= 1
}
}
```