/**
* @param {string} s
* @return {string}
*/
var reverseWords = function (s) {
let stack = []; // 使用栈存储字符串中的单词
let word = ''; // 临时缓存单词
let result = ''; // 存储翻转后字符串
// 遍历字符串,查找所有单词
for (let i = 0; i < s.length; i++) {
// 如果遇到空格,且已找到单词,就将其存入栈
if (s[i] === ' ' && word !== '') {
stack.push(word);
word = ''; // 单词入栈后,清空缓存
} else if (s[i] !== ' ') {
// 如果遇到非空格字符,表示遇到了单词,将其存入word
word += s[i];
}
}
// 如果遍历完成后,还有单词,继续入栈
// 避免最后一个单词被忽略
if (word) {
stack.push(word);
}
// 将末尾单词第一个存入结果
result += stack.pop();
// 将栈中元素依次出栈,实现翻转
while (stack.length) {
// 单词之间用空格隔开
result += ' ' + stack.pop();
}
// 返回结果
return result;
};
评论