541. 反转字符串 II

方法一:模拟(reverse方法分开写)
var reverseStr = function(s, k) {
const n = s.length;
const arr = Array.from(s);
for (let i = 0; i < n; i += 2 * k) {
reverse(arr, i, Math.min(i + k, n) - 1);
}
return arr.join('');
};
const reverse = (arr, left, right) => {
while (left < right) {
const temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
left++;
right--;
}
}
方法二:reverse写一起
var reverseStr = function(s, k) {
const len = s.length;
let resArr = s.split("");
for (let i = 0; i < len; i += 2 * k) {
let l = i - 1, r = i + k > len ? len : i + k;
while (++l < --r) [resArr[l], resArr[r]] = [resArr[r], resArr[l]];
}
return resArr.join("");
};