第一天:力扣344题,反转字符串:
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。
我的菜鸡码:
var reverseString = function(s) {
for (let i =s.length-1;i>=0;i--)
{
s.push(s[i]);
s.splice(i,1);
}
return s;
};
执行用时:340 ms, 在所有 JavaScript 提交中击败了5.08%的用户
内存消耗:46.5 MB, 在所有 JavaScript 提交中击败了5.04%的用户
后来百度了一个方法,就是reverse,直接反转数组元素:
var reverseString = function(s) {
s.reverse();
return s;
};
执行用时:124 ms, 在所有 JavaScript 提交中击败了58.83%的用户
内存消耗:44.4 MB, 在所有 JavaScript 提交中击败了19.76%的用户
后来看到一种方法也不错:
var reverseString = function(s) {
let x=s.length-1;
let y=0;
while(x>y)
{
[s[x],s[y]]=[s[y],s[x]];
x--;
y++;
}
return s;
};