LeeCode - 反转字符串中的单词

214 阅读1分钟

LeeCode - 反转字符串中的单词

题目:

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

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

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

分析:

我第一时间想到的还是array.prototype.reserve() ,首先要通过字符串的 split()方法,将字符串转换为数组,再通过map()方法,遍历数组中的每一项item,再对每项的item进行reverse(),返回数组后join()

我的答案:

/**
 * @param {string} s
 * @return {string}
 */
var reverseWords = function(s) {
    return s.split(" ").map((item) => {
        return item.split("").reverse().join("")
    }).join(" ")
};

结果:提交成功

耗时:112ms

内存:47.6MB

其他解法

绕来绕去法

这里比较绕,想一下就明白了:

const reverseWords = function (s) { 
  return s.split("").reverse().join("").split(" ").reverse().join(" ")
}

结果:提交成功

耗时:168ms

内存:44.8MB