# 557 反转字符串中的单词 III

# 题目

给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。

示例:

输入:"Let's take LeetCode contest"
输出:"s'teL ekat edoCteeL tsetnoc"

提示:

在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。

# 题解

  1. 先进行拆分,然后遍历拆分后的数组,把里面的每一项依次进行翻转操作

TIP

执行用时:88 ms, 在所有 JavaScript 提交中击败了 82.86% 的用户
内存消耗:43.2 MB, 在所有 JavaScript 提交中击败了 86.94% 的用户
/**
 * @param {string} s
 * @return {string}
 */
var reverseWords = function(s) {
  let list = s.split(' ')   // 拆分成数组
  list = list.map(item => {
      // 这里对拆分后的数组,依次执行 *拆分-翻转-合并* 的操作
    return item.split('').reverse().join('')
  })
    // 翻转后拼回空格
  return list.join(' ')
};
  • 时间复杂度: `O(n)`,进行了一次遍历操作
  • 空间复杂度: `O(n)`,使用了额外空间用来保存拆分后的数组
  • 最好情况: 传入的字符串较短,则进行较少遍历
  • 最坏情况: 传入的字符串较长,则需要进行多次遍历
最后更新时间: 9/16/2020, 10:53:37 PM