leetcode709、转换成小写字母

题目

实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串。


示例 1:
输入: “Hello”
输出: “hello”

示例 2:
输入: “here”
输出: “here”

示例 3:
输入: “LOVELY”
输出: “lovely”


做法一:对象+数组更换

var toLowerCase = function(str) {
    let newStr = ''
    let lowercaseObj = {
      A: 0,
      B: 1,
      C: 2,
      D: 3,
      E: 4,
      F: 5,
      G: 6,
      H: 7,
      I: 8,
      J: 9,
      K: 10,
      L: 11,
      M: 12,
      N: 13,
      O: 14,
      P: 15,
      Q: 16,
      R: 17,
      S: 18,
      T: 19,
      U: 20,
      V: 21,
      W: 22,
      X: 23,
      Y: 24,
      Z: 25
    }
    let lowerArr = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
    for (let i = 0; i < str.length; i++) {
      let result = hasProperty(lowercaseObj, str[i])
      newStr += result.status ? lowerArr[result.index] : str[i]
    }
    return newStr
}

function hasProperty (obj, key) {
    if (obj[key] !== undefined) {
      return {
        status: true,
        index: obj[key]
      }
    } else {
      return {
        status:  false
      }
    }
}

性能测试
执行用时 : 84 ms, 在To Lower Case的JavaScript提交中击败了95.64% 的用户
内存消耗 : 33.5 MB, 在To Lower Case的JavaScript提交中击败了76.63% 的用户


做法二:ASCII码转换

var toLowerCase = function(str) {
    let newStr = ''
    for (let i = 0; i < str.length; i++) {
        let asciistr = str[i].charCodeAt(0)
        if (asciistr >= 65 && asciistr <= 90) {
            newStr += String.fromCharCode(asciistr + 32)
        } else {
            newStr += str[i]
        }
    }
    return newStr
}

性能测试
执行用时 : 72 ms, 在To Lower Case的JavaScript提交中击败了98.80% 的用户
内存消耗 : 33.7 MB, 在To Lower Case的JavaScript提交中击败了42.66% 的用户

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值