# 151.翻转字符串里的单词
给定一个字符串,逐个翻转字符串中的每个单词。
# 例子
# 思路
解题思路:使用双端队列解题
- 首先去除字符串左右空格
- 逐个读取字符串中的每个单词,依次放入双端队列的对头
- 再将队列转换成字符串输出(已空格为分隔符)
# 本人答案
/**
* @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
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20