344.反转字符串

LeetCode

注意

原生API

1
2
3
var reverseString = function(){
return s.reverse();
}

循环

从前向后两两交换字母位置,n为数组s的长度,那么只需要n/2次就可以调换所有的顺序

1
2
3
4
5
6
7
8
9
10
11
var reverseString = function (s) {
var len = s.length,
middle = Math.ceil(s.length / 2),
i = 0;
for (; i < middle; i++) {
var temp = s[i];
s[i] = s[len - i - 1];
s[len - i - 1] = temp;
}
return s;
};

双指针

与循环方法相似,需要left,right两个指针,分别向中间移动,当两个指针相等时,交换完成

1
2
3
4
5
6
7
8
9
10
11
12
var reverseString = function (s) {
var left = 0,
right = s.length - 1;
while (left <= right) {
var temp = s[left];
s[left] = s[right];
s[right] = temp;
left++;
right--;
}
return s;
}

复杂度分析

  • 时间复杂度: 只需要遍历 次。

  • 空间复杂度: 不需要额外空间

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2015-2025 SunZhiqi

此时无声胜有声!

支付宝
微信