干丫的算法之反转字符串(1)

177 阅读1分钟

算法薄弱,每天一道算法题,突破自己

题目

编写函数将输入的字符串反转过来,输入字符串char[]的形式
不要额外的空间,原地修改输入数组,使用O(1)的额外空间

实例1:

输入:["h","e","l","l","o"]
输出:["o","l","l","e","h"]

实例2:

输入:["H","a","n","n","a","h"]
输出:["h","a","n","n","a","H"]

解析

使用双指针两两交换

参考代码

/**
 * @param {character[]} s
 * @return {void} Do not return anything, modify s in-place instead.
 */
var reverseString = function(s) {
    if (!s.length) return;
    let i = 0;
    let j = s.length - 1;

    while (i < j) {
        let temp = s[i];
        s[i] = s[j];
        s[j] = temp;
        i++;
        j--;
    }
};