反转字符串(JavaScript)

题目

  1. 链接:https://leetcode-cn.com/problems/reverse-w...
  2. 题面:
    反转字符串(JavaScript)

个人方法

  1. 分析:由于每个单词反转后的顺序不变,所以我们将该字符串,按照空格分割成独立单词,再反转单词,再拼接

  2. 代码:

    var reverseWords = function(s) {
        // 将字符串按空格分成单词,并存入数组中
        let arr = s.split(' ')
        // 遍历数组,将每个单词拆成字母存入数组,再反转,再拼接成单词
        let result = arr.map(item => {
            return item.split('').reverse().join('')
        })
        // 将所有单词用空格连成字符串
        return result.split(' ')
    }
    • 优化:

      var reverseWords = function(s) {
          return s.split(' ').map(item => {
              return item.split('').reverse().join('')
          }).join(' ')
      };
      // 这样就没有了 arr 和 result,节省了时间和空间

大佬启示

  1. 之前是先分割成独立单词,再反转单词,再拼接,可是我们用到的 map 方法是比较耗时的,所以优化如下:

    var reverseWords = function(s) {
        return s.split('').reverse().join('').split(' ').reverse().join(' ')
    }
    • 进一步优化为:

      // split 的参数也可以是正则表达式,所以用 /\s+/ 来代替原先的空格字符
      var reverseWords = function(s) {
          return s.split('').reverse().join('').split(/\s+/).reverse().join(' ')
      };
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!