每日刷题-344. 反转字符串, --557. 反转字符串中的单词 III

129 阅读1分钟

344. 反转字符串

编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。

不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。

func reverseString(_ s: inout [Character]) {

    let n = s.count

    var left = 0

    var right = n - 1

    while left < right {

        let char = s[left]

        s[left] = s[right]

        s[right] = char

        left += 1

        right -= 1

    }

}

557. 反转字符串中的单词 III

给定一个字符串 s ,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。

func reverseWords(_ s: String) -> String {

    let reverse = String(s.reversed())

    let array = reverse.split(separator: " ")

    let res = array.reversed().joined(separator: " ")

    return res
}

附一个不明觉厉的写法 作者:acan7

class Solution {
    func reverseWords(_ s: String) -> String {
        s.split(separator: " ").map { String($0.reversed()) }.joined(separator: " ")
    }
}