function reverseWordsInPlace(chars) {
const rev = (l, r) => {
while (l < r) {
[chars[l], chars[r]] = [chars[r], chars[l]];
l++; r--;
}
};
rev(0, chars.length - 1);
let start = 0;
for (let i = 0; i <= chars.length; i++) {
if (i === chars.length || chars[i] === ' ') {
rev(start, i - 1);
start = i + 1;
}
}
return chars;
}
reverseWordsInPlace([...'the sky is blue']);
Экономия памяти при работе с mutable buffer (типичный LeetCode-стиль). В JS строки иммутабельны — работают с массивом символов.