方法一 双指针
- 倒序遍历字符串 ss ,记录单词左右索引边界 ii , jj ;
- 每确定一个单词的边界,则将其添加至单词列表 resres ;
- 最终,将单词列表拼接为字符串,并返回即可。
1 /**
2 * @param {string} s
3 * @return {string}
4 */
5 var reverseWords = function(s) {
6 s = s.trim();
7 let res = [];
8 for(let i = s.length - 1, j = s.length - 1; i >= 0; ) {
9 while(s.charAt(i) != ' ' && i >= 0) {
10 i--;
11 }
12 const temp = s.substring(i + 1, j + 1);
13 res.push(temp);
14 while(s.charAt(i) == ' ') {
15 i--;
16 }
17 j = i;
18 //console.log(`i=${i} j=${j}`);
19 }
20 return res.join(' ');
21 };
方法二 库函数
1 /**
2 * @param {string} s
3 * @return {string}
4 */
5 var reverseWords = function(s) {
6 s = s.trim().split(" ");
7 let res = [];
8 //console.log(s);
9 for(temp of s) {
10 if(temp == " " || temp == "")
11 continue;
12 res.unshift(temp);
13 }
14 return res.join(' ');
15 };