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

示例 1:

输入: "Let's take LeetCode contest"
输出: "s'teL ekat edoCteeL tsetnoc"
注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reverse-words-in-a-string-iii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路:
1:将输入的字符串用空格切分成数组,然后通过操作每一项,进行反转。
2: 反转之后,进行数组的拼接。

以下3钟方法思路全部一样,写法不一样,渐进优化

第一次实现:

var reverseWords = function (s) {
    const arr = s.split(' ')
    const val = arr.map((item) => {
        return item.split('').reverse().join('')
    })
    let str = ''
    for (let i = 0; i < val.length; i++) {
        if (i === val.length - 1) {
            str += val[i]
        } else {
            str += val[i] + ' '
        }
    }
    return str
}

优化1:

var reverseWords = function (s) {
    const arr = s.split(' ')
    const val = arr.map((item) => {
        return item.split('').reverse().join('')
    })
    // 直接使用api拼接效率更高
    return val.join(' ')
}

优化2:

var reverseWords = function (s) {
    const arr = s.split(' ')
    let str = ''
    for (let i = 0; i < arr.length; i++) {
        if (i === arr.length - 1) {
            str += arr[i].split('').reverse().join('')
        } else {
            str += arr[i].split('').reverse().join('') + ' '
        }
    }
    return str
}

你可能感兴趣的:(557. 反转字符串中的单词 III)