344. 反转字符串

一、题目原型:

编写一个函数,其作用是将输入的字符串反转过来。

二、示例剖析:

1
2
3
4
5
6
7
示例 1:
输入: "hello"
输出: "olleh"

示例 2:
输入: "A man, a plan, a canal: Panama"
输出: "amanaP :lanac a ,nalp a ,nam A"

三、解题思路:

1.用一个数组存起来,再反向遍历。

1
2
3
4
5
6
7
8
9
10
11
12
13
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.用一个数组接收字符串,直接利用原数组进行反转。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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

坚持原创技术分享,您的支持将鼓励我继续创作!