Reverse All Words in a String 反轉字符串中的所有單詞
解法1
class Solution {
func reverseWords(_ s: String) -> String {
if s.count <= 1 {
return s
}
var result = ""
let array = s.split(separator: " ")
for characters in array {
result = result + characters.reversed() + " ";
}
result.removeLast()
return result;
}
}
解法2
class Solution {
func reverseWords(_ s: String) -> String {
if s.count <= 1 {
return s
}
let array = s.split(separator: " ")
let result = array.map { String($0.reversed()) }
return result.joined(separator: " ")
}
}
解法3
上面的兩種方法都使用了
Swift
原生的反轉方法reversed()
, 如果要求自己實現呢 ?
/// 反轉一個指定的字符串
fileprivate func _reverse(_ chars: inout [Character], _ start: inout Int, _ end: inout Int) {
while start < end {
_swap(&chars, start, end);
start += 1
end -= 1
}
}
/// 交換字符數組中的兩個字符元素
fileprivate func _swap(_ chars: inout [Character], _ p: Int, _ r: Int) {
(chars[p], chars[r]) = (chars[r], chars[p])
}