# 151.翻转字符串里的单词

给定一个字符串,逐个翻转字符串中的每个单词。

# 例子

img

# 思路

解题思路:使用双端队列解题

  • 首先去除字符串左右空格
  • 逐个读取字符串中的每个单词,依次放入双端队列的对头
  • 再将队列转换成字符串输出(已空格为分隔符)

# 本人答案

/**
 * @param {string} s
 * @return {string}
 */
var reverseWords = function(s) {
    let strArr = s.trim().split(' ')
    console.log(strArr)
    let result = []
    for(let i=0;i<strArr.length;i++) {
        if(strArr[i] !== '') {
            result.push(strArr[i])
        }
    }
    return result.reverse().join(' ')
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# 他人答案

var reverseWords = function(s) {
    let left = 0
    let right = s.length - 1
    let queue = []
    let word = ''
    while (s.charAt(left) === ' ') left ++
    while (s.charAt(right) === ' ') right --
    while (left <= right) {
        let char = s.charAt(left)
        if (char === ' ' && word) {
            queue.unshift(word)
            word = ''
        } else if (char !== ' '){
            word += char
        }
        left++
    }
    queue.unshift(word)
    return queue.join(' ')
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20