151.翻转字符串里的单词

给你一个字符串 s ,逐个翻转字符串中的所有 单词 。单词是由非空格字符组成的字符串。s中使用至少一个空格将字符串中的单词分隔开。请你返回一个翻转 s 中单词顺序并用单个空格相连的字符串。

说明:

  • 输入字符串 s 可以在前面、后面或者单词间包含多余的空格。
  • 翻转后单词间应当仅用一个空格分隔。
  • 翻转后的字符串中不应包含额外的空格。

思路:

  1. 使用 split 将字符串按空格分割成字符串数组;
  2. 使用 reverse 将字符串数组进行反转;
  3. 使用 join 方法将字符串数组拼成一个字符串。
  4. \s 是匹配所有空白符,包括换行;
  5. +表示匹配前面的子表达式一次或多次

代码:

1 /**
2  * @param {string} s
3  * @return {string}
4  */
5 var reverseWords = function(s) {
6     return s.trim().split(/\s+/).reverse().join(' ');
7 };

 复杂度分析:

  • 时间复杂度:O(n),其中n为输入字符串的长度

  • 空间复杂度:O(n),用来存储字符串分割之后的结果

 
posted @ 2021-09-03 21:06  icyyyy  阅读(71)  评论(0)    收藏  举报