字符串反转

【字符串反转】1、给出一个字符串,要求将其按照单词顺序进行反转。比如:如果是“the sky is blue”,那么反转后的结果就是"blue is sky the"。
思路:
1)整个字符串进行反转 "the sky is blue" -> "eulb si yks eht"
2)反转单个单词 "eulb si yks eht" -> "blue is sky the"
Swift版本

func reverse(_ chars: inout [T], start: Int, end: Int) { var start = start var end = end while start < end { swap(&chars, beforeIndex: start, afterIndex: end) start += 1 end -= 1 } }func swap(_ chars: inout [T], beforeIndex: Int, afterIndex: Int) { // 利用元祖进行交换 (chars[beforeIndex], chars[afterIndex]) = (chars[afterIndex], chars[beforeIndex]) }func reverseWords(str: String?) -> String? { guard let inputString = str else { return nil } var chars = Array(inputString.characters) var start = 0 // 1 reverse(&chars, start: start, end: chars.count - 1)for i in 0..

思路2:
以空格为间隔字符将字符串转换为数组,然后将数组进行反序,最后在加入空格字符变成字符串
func reverseString(_ str: String) -> String { if str.isEmpty { return str } // 转换为数组 var stringArray = str.components(separatedBy: " ") // 反转数组 stringArray.reverse() // 变为字符串 return stringArray.joined(separator: " ") }

输入:the sky is blue
输出:blue is sky the

    推荐阅读