/** * @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;};
评论