Merge pull request #674 from YDLIN/master

添加0541. 反转字符串II Swift版本
This commit is contained in:
程序员Carl
2021-08-29 09:31:14 +08:00
committed by GitHub
2 changed files with 65 additions and 0 deletions

View File

@ -254,6 +254,28 @@ var reverseStr = function(s, k) {
```
Swift:
```swift
func reverseStr(_ s: String, _ k: Int) -> String {
var ch = Array(s)
for i in stride(from: 0, to: ch.count, by: 2 * k) {
var left = i
var right = min(s.count - 1, left + k - 1)
while left < right {
(ch[left], ch[right]) = (ch[right], ch[left])
left += 1
right -= 1
}
}
return String(ch)
}
```
-----------------------

View File

@ -264,6 +264,49 @@ javaScript:
};
```
Swift:
```swift
func replaceSpace(_ s: String) -> String {
var strArr = Array(s)
var count = 0
// 统计空格的个数
for i in strArr {
if i == " " {
count += 1
}
}
// left 指向旧数组的最后一个元素
var left = strArr.count - 1
// right 指向扩容后数组的最后一个元素(这里还没对数组进行实际上的扩容)
var right = strArr.count + count * 2 - 1
// 实际对数组扩容
for _ in 0..<(count * 2) {
strArr.append(" ")
}
while left < right {
if strArr[left] == " " {
strArr[right] = "0"
strArr[right - 1] = "2"
strArr[right - 2] = "%"
left -= 1
right -= 3
} else {
strArr[right] = strArr[left]
left -= 1
right -= 1
}
}
return String(strArr)
}
```
-----------------------