# 557 反转字符串中的单词 III
# 题目
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
示例:
输入:"Let's take LeetCode contest"
输出:"s'teL ekat edoCteeL tsetnoc"
提示:
在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。
# 题解
- 先进行拆分,然后遍历拆分后的数组,把里面的每一项依次进行翻转操作
TIP
执行用时:88 ms, 在所有 JavaScript 提交中击败了 82.86% 的用户
内存消耗:43.2 MB, 在所有 JavaScript 提交中击败了 86.94% 的用户
内存消耗: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)`,使用了额外空间用来保存拆分后的数组
- 最好情况: 传入的字符串较短,则进行较少遍历
- 最坏情况: 传入的字符串较长,则需要进行多次遍历
← 551 学生出勤记录 I 566 重塑矩阵 →