编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。
不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。
这是一个比较简单的字符 串反转问题,可直接使用 JS API , 循环交换, 双指针的方法解决
- JS API
var reverseString = function(s) {
return s.reverse()
};
- 循环交换
通过遍历数组,交换 第 i 个 和 第 (数组长度 - i) 个元素,达到交换的目的。遍历长度为 Math.floor(数组长度 / 2).
var reverseString = function(s) {
for (let index = 0 ; index < Math.floor(s.length / 2); index++) {
let left = index
let right = s.length - 1 - index
let temp = s[left]
s[left] = s[right]
s[right] = temp
}
}
- 双指针
设置数组左右两个指针,进行交换。交换完毕后,左指针又移,右指针左移,直至两个指针相交,那么交换结束
var reverseString = function(s) {
let left = 0
let right = s.length - 1
while (left < right) {
if (s[left] !== s[right]) {
let temp = s[left]
s[left] = s[right]
s[right] = temp
}
left++
right--
}
}
以上三种方法均可实现数组的反转。