数据结构与算法每日一题——快慢指针(344. 反转字符串)

75 阅读1分钟

344. 反转字符串

/**
/**
 * @param {character[]} s
 * @return {void} Do not return anything, modify s in-place instead.
 */
var reverseString = function(s) {
    // 第一种快慢指针
    let len = s.length
    for(let left=0,right=len-1;left<right;++left,--right){
        [s[left],s[right]] = [s[right],s[left]]
    }
    // 第二种快慢指针
    // let start = 0;
    // let end = s.length - 1;
    // while (start < end) {
    //   [s[start], s[end]] = [s[end], s[start]];
    //   start++;
    //   end--;
    // }
    // return s;
    // 把字符串当做一个数组,从中点分为两部分,循环前半部分,将后半部分中和前半部分对称的元素进行交换即可。
    // let len = s.length;
    //   for(let i=0; i< len/2; i++){
    //     let temp = s[i];
    //     s[i] = s[len-1-i];
    //     s[len-1-i] = temp;
    // }
};