一、题目原型:
编写一个函数,其作用是将输入的字符串反转过来。
二、示例剖析:
示例 1:
输入: "hello"
输出: "olleh"
示例 2:
输入: "A man, a plan, a canal: Panama"
输出: "amanaP :lanac a ,nalp a ,nam A"
三、解题思路:
1.用一个数组存起来,再反向遍历。
func reverseString(_ s: String) -> String {
var chars: [Character] = []
for char in s {
chars.append(char)
}
var string: String = ""
var index = s.count - 1
while index >= 0 {
string.append(chars[index])
index = index - 1
}
return string
}
2.用一个数组接收字符串,直接利用原数组进行反转。
func reverseString(_ s: String) -> String {
var chars = s.cString(using: String.Encoding.utf8)!
var left = 0
var right = s.count - 1
while left < right {
let char = chars[left]
chars[left] = chars[right]
chars[right] = char
left = left + 1
right = right - 1
}
print(chars)
return String.init(utf8String: chars)!
}
四、小结
1.耗时60
毫秒,超过48%
的提交记录,总提交数476
。
2.耗时36
毫秒,超过99.33%
的提交记录,总提交数476
。
个人博客地址