剑指 Offer 58 - I. 翻转单词顺序

方法一 双指针

  • 倒序遍历字符串 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 };

 

posted @ 2021-09-21 18:11  雪之下。  阅读(30)  评论(0)    收藏  举报