/** * @param {character[]} s * @return {void} Do not return anything, modify s in-place instead. */ var reverseString = function(s) { // 双指针交换字符 let a = -1,b = s.length while(++ a < --b){ [s[a], s[b]] = [s[b], s[a]] } return s };
/** * @param {string} s * @param {number} k * @return {string} */ var reverseStr = function(s, k) { const len = s.length; // split() 方法用于把一个字符串分割成字符串数组。 let resArr = s.split(""); // 每隔 2k 个字符的 for(let i = 0; i < len; i += 2 * k) { // 前 k 个字符进行反转 let a = i - 1, b = i + k > len ? len : i + k; // 形同反转字符串Ⅰ while(++a < --b) { [resArr[a], resArr[b]] = [resArr[b], resArr[a]]; } } // join('')将数组元素无缝拼接 return resArr.join(""); };