// 0557-reverse-words-in-a-string-iii.js
// https://leetcode.com/problems/reverse-words-in-a-string-iii/description/
// Given a string, you need to reverse the order of characters in each word within a sentence while still preserving whitespace and initial word order.
// --
// T(n)
// S(1)
/**
* @param {string} s
* @return {string}
*/
// solution 1
var reverseWords = function(s) {
let l = 0;
s = s.split("");
for (let i = 0; i <= s.length; i++) {
if (i == s.length || s[i] === ' ') {
helpReverse(s, l, i - 1);
l = i + 1;
}
}
return s.join("");
};
var helpReverse = function(s, l, r) {
while (r - l >= 1) {
let temp = s[l];
s[l++] = s[r];
s[r--] = temp;
}
}
// solution 2
var reverseWords = function(s) {
return s.split(" ").map(w => w.split("").reverse().join("")).join(" ");
};