电话号码的字母组合

链接

17. 电话号码的字母组合 - 力扣(LeetCode)

思路

  1. 首先我们要先得到 "电话号码" 所对应的 返回数组

  2. 根据得到的返回数组,去进行拼接,但是 js 和 c 语言不一样,需要借助 .charCodeAt(0) 来获取到当前的 ASCII 码

  3. 注意屏幕说的是 要 给的 最后长度的 结果,所以我们在遍历到 最后一位的时候,记录下来即可,如果不是就继续递归

代码:

javascript 复制代码
/**
 * @param {string} digits
 * @return {string[]}
 */
var letterCombinations = function (digits) {
    let res = [], len = digits.length

    function getChar(char) {
        switch (char) {
            case '2': return new Array(3).fill().map((value, index) => String.fromCharCode('a'.charCodeAt(0) + index));
            case '3': return new Array(3).fill().map((value, index) => String.fromCharCode('d'.charCodeAt(0) + index));
            case '4': return new Array(3).fill().map((value, index) => String.fromCharCode('g'.charCodeAt(0) + index));
            case '5': return new Array(3).fill().map((value, index) => String.fromCharCode('j'.charCodeAt(0) + index));
            case '6': return new Array(3).fill().map((value, index) => String.fromCharCode('m'.charCodeAt(0) + index));
            case '7': return new Array(4).fill().map((value, index) => String.fromCharCode('p'.charCodeAt(0) + index));
            case '8': return new Array(3).fill().map((value, index) => String.fromCharCode('t'.charCodeAt(0) + index));
            case '9': return new Array(4).fill().map((value, index) => String.fromCharCode('w'.charCodeAt(0) + index));
        }
    }

    function getRes(pre, index) {
        if (index >= len) return
        else if (index === len - 1) {
            res.push(...getChar(digits[index]).map(value => {
                return pre + value
            }))
        }
        else getChar(digits[index]).forEach(value => {
            getRes(pre + value, index + 1)
        })
    }

    getRes('', 0)

    return res
};
相关推荐
SeaDhdhdhdhdh1 小时前
MCP Server 搭建与使用指南
java·ai·agent·mcp
YH55269842 小时前
GPT‑5.6 Sol 原本支持 1M 上下文,Codex 现已放开此前限制,如何看待这次调整?
java·jvm·人工智能·gpt·算法·chatgpt
AI_小站2 小时前
刚面完百度的 Agent 开发岗,我才发现:世界就是个巨大的草台班子
java·开发语言·人工智能·spring·百度·langchain
许彰午3 小时前
03-三种开发模式
java·架构
涟漪海洋3 小时前
创建最新的JDK25镜像,非root环境启动
java
遥感知识服务4 小时前
从局部阈值、双极化到暗地表剔除:NASA OPERA DSWx-S1全球动态水体算法拆解
大数据·人工智能·深度学习·神经网络·算法·机器学习
晚风醉蝶4 小时前
1-13-TimSort
算法
Rain的Java大神之路4 小时前
短信接口被狂刷怎么处理
java·运维·后端·web安全·面试·架构·xss
ZJU_统一阿萨姆4 小时前
【算子开发】算子融合与Softmax_LayerNorm实现
人工智能·算法·语言模型·硬件架构
2602_959960924 小时前
谢飞机面试大厂:Spring Boot、JVM、Redis、Kafka、微服务与音视频搜索场景求生实录
java·jvm·spring boot·redis·面试题