资讯专栏INFORMATION COLUMN

LeetCode-电话号码的字母组合(No.17) 递归+hash

周国辉 / 2016人阅读

摘要:电话号码的字母组合给定一个仅包含数字的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下与电话按键相同。注意不对应任何字母。

LeetCode 17. 电话号码的字母组合
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。
注意 1 不对应任何字母。


示例:

输入:"23"
输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].

这道题的难点主要就是首先你能将输入的号码对应的结果映射出来,最后通过递归的形式两两组合得出结果
let letterCombinations = (digits) => {
  if (digits.length == 0) return [] //为空 情况
  let map = ["", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"]
  let arr = digits.split("")
  let resarr = arr.map(item => map[item])
  if (resarr.length == 1) return resarr[0].split("")//仅输入一个 情况

  let compute = (arr) => {//组合传入数组的前两项  ["ab","cd","ewe"]
    let temp = []         //["ac","ad","bc","bd"]
    // 将前两项组合结果放入临时数组中  
    for (let i = 0; i < arr[0].length; i++) {
      for (let j = 0; j < arr[1].length; j++) {
        temp.push(`${arr[0][i]}${arr[1][j]}`)
      }
    }
    // [["ac","ad","bc","bd"],"ewe"]
    arr.splice(0, 2, temp)//将原来的数组前两项结果用临时数组替换
    if (arr.length > 1) {
      compute(arr)
    }
    return arr[0]
  }
  return compute(resarr)
};

你也可以用这种哈希表的形式

 let map = { //你也可以用这种哈希表的形式
    "2": "abc",
    "3": "def",
    "4": "ghi",
    "5": "jkl",
    "6": "mno",
    "7": "pqrs",
    "8": "tuv",
    "9": "wxyz",
  }

如果喜欢或者想要更多的信息,可以戳这里,欢迎star

扫一扫

往期文章

数据结构与算法-LeetCode 格雷编码(No.89)

数据结构与算法-LeetCode 种花问题(No.605)

LeetCode-电话号码的字母组合(No.17) 递归+hash

JavaScript 数据结构与算法 这题你会吗?

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/104171.html

相关文章

  • 数据结构与算法-LeetCode 格雷编码(No.89)

    摘要:例如,也是一个有效的格雷编码序列。示例输入输出解释我们定义格雷编码序列必须以开头。给定编码总位数为的格雷编码序列,其长度为。因此,当时,其格雷编码序列为。 LeetCode 89. 格雷编码 格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。给定一个代表编码总位数的非负整数 n,打印其格雷编码序列。格雷编码序列必须以 0 开头。第一个数与最后一位数 也只差以...

    Youngs 评论0 收藏0
  • 数据结构与算法-LeetCode 种花问题(No.605)

    摘要:能否在不打破种植规则的情况下种入朵花能则返回,不能则返回。示例输入输出示例输入输出注意数组内已种好的花不会违反种植规则。输入的数组长度范围为。是非负整数,且不会超过输入数组的大小。 LeetCode 605. 种花问题 假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去。 给定一个花坛(表示为一个数组包含0和1,...

    xuexiangjys 评论0 收藏0
  • 微信小程序中图片上传阿里云Oss

    摘要:微信小程序图片上传阿里云服务器也折腾了蛮久才解决的,所以特意去记录一下。上传失败第四步源码在这里如果觉得这面文章对你有帮助的话,可给我点个这里,谢谢最后,希望这篇文章对你有所帮助,真真确确是可以在微信小程序中上传图片到阿里云的。 本人今年6月份毕业,最近刚在上海一家小公司实习,做微信小程序开发。最近工作遇到一个小问题。 微信小程序图片上传阿里云服务器Oss也折腾了蛮久才解决的,所以特意...

    Yang_River 评论0 收藏0
  • 微信小程序中图片上传阿里云Oss

    摘要:微信小程序图片上传阿里云服务器也折腾了蛮久才解决的,所以特意去记录一下。上传失败第四步源码在这里如果觉得这面文章对你有帮助的话,可给我点个这里,谢谢最后,希望这篇文章对你有所帮助,真真确确是可以在微信小程序中上传图片到阿里云的。 本人今年6月份毕业,最近刚在上海一家小公司实习,做微信小程序开发。最近工作遇到一个小问题。 微信小程序图片上传阿里云服务器Oss也折腾了蛮久才解决的,所以特意...

    netmou 评论0 收藏0

发表评论

0条评论

周国辉

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<