力扣题/回溯/电话号码的字母组合

news2024/9/22 11:29:23

电话号码的字母组合

力扣原题

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。

给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
在这里插入图片描述

示例 1:

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

示例 2:

输入:digits = ""
输出:[]

示例 3:

输入:digits = "2"
输出:["a","b","c"]

/**
 * @param {string} digits
 * @return {string[]}
 */
var letterCombinations = function(digits) {
    const digitMap = {
        2: ['a', 'b', 'c'],
        3: ['d', 'e', 'f'],
        4: ['g', 'h', 'i'],
        5: ['j', 'k', 'l'],
        6: ['m', 'n', 'o'],
        7: ['p', 'q', 'r', 's'],
        8: ['t', 'u', 'v'],
        9: ['w', 'x', 'y', 'z'],
    }
    const res = []
    function dfs(i = 0, str = '') {
        if(i === digits.length) {
            return str && res.push(str)
        }

        const letters = digitMap[digits[i]]
        for(const letter of letters) {
            dfs(i+1, str+letter)
        }

    }
    dfs()
    return res;
};

解题思路

构建数组和字母的映射集合,使用深度遍历,从下标i=0的数字开始,查找到其所有映射的字母并拼接,继续传递给下标i=i+1的数字,直到i=digits.length结束,此时的拼接字符串为一种组合。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2085110.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

iOS/iPadOS18.1Beta3发布,新增通知摘要和AI消除功能

除了iOS/iPadOS18 Beta8,苹果今天一同推送的还有iOS/iPadOS 18.1开发者预览版Beta 3!iOS/iPadOS18.1Beta3的内部版本号为22B5034e,距离上次发布Beta/RC间隔8天。 依旧是仅针对支持Apple Intelligence的iPhone 15 Pro和iPhone 15 Pro Max两款…

Can‘t set custom OpenAI model with langchain on nodejs

题意:"无法在 Node.js 中使用 LangChain 设置自定义 OpenAI 模型" 问题背景: I am trying to set "gpt-3.5-turbo" model in my OpenAI instance using langchain in node.js, but below way sends my requests defaultly as text-…

个人信息保护专业人员(CCRC-PIPP)助力企业数据要素合规有序流通

在当今数字化时代,个人信息作为企业不可或缺的数据资产,其合规管理与高效流通变得尤为重要。 组织须采纳必要措施保护用户信息,同时确保遵循相关法规要求。 为此,中国网络安全审查认证和市场监管大数据中心推出了个人信息保护专…

Java:简述类的加载机制-初始化

Java:普通代码块,构造代码块,静态代码块区别及其执行顺序 类加载的机制过程分为以下:加载、验证、准备、解析、初始化等。 本文主要分析类的初始化过程。 类的初始化阶段,是真正开始执行类中定义的java程序代码(.cla…

成都电工培训优惠报名在哪里?

如何获取优惠抵扣? 一、关注特殊群体优惠 农民工优惠:部分地区或培训机构会针对农民工群体提供培训费用的减免或优惠,具体政策需咨询当地培训机构或相关部门。 退伍军人优惠:退伍军人作为特殊群体,在参加职业技能培训…

考研系列-408真题数据结构篇(10-17)

写在前面 此文章是本人在备考过程中408真题数据结构部分(2010年-2017年)的易错题及相应的知识点整理,后期复习也尝尝用到,对于知识提炼归纳理解起到了很大的作用,分享出来希望帮助到大家~ # 2010年 1.散列表处理冲突…

CAN Intel格式与Motorola格式的区别

在CAN(Controller Area Network)通信中,CAN报文的编码格式对于数据的有效传输和准确解析至关重要。CAN报文的编码格式主要包括Intel格式和Motorola格式。尽管这两种格式在单个字节内部的数据表示上是一致的,但在处理跨字节数据时&…

uniapp微信小程序开发测试获取手机号码

先申请测试号 注意认证但是没有完全认证不要试测试号解密如下 总结我自己的两大坑 1.官网的WXBizDataCrypt需要导入crypto要提前下载但是试了很多次没有效果重新编写这个。将crypto库换成crypto-js库 2.我一直在尝试用下有下面这个界面的测试号不行获取不到用户的code还是啥忘记…

CSS系列之Float浮动(二)

一、传统网页布局 网页布局的本质:用 CSS 来摆放盒子,把盒子摆放到相应位置。CSS 提供了三种传统布局方式(这里指的只是传统布局,其实还有一些特殊高级的布局方式): 标准流浮动定位 1、所谓的标准流&#…

美团高级测试面试700题汇总:软测+MySQL+Liunx+Python+自动化等

前言 面试:如果不准备充分的面试,完全是浪费时间,更是对自己的不负责。 今天给大家分享下我整理的BAT软件测试面试专题及答案,其中大部分都是大企业面试常问的面试题,可以对照这查漏补缺,当然了&#xff…

火语言RPA流程组件介绍--清空回收站

🚩【组件功能】:清空windows回收站中的所有文件 配置预览 配置说明 无 无配置项,该组件清空回收站内容后无法撤回。 输入输出 输入类型 万能对象类型(System.Object)输出类型 万能对象类型(System.Object)🏁 上一组件的输出…

任务管理与延时

1、添加任务管理器 任务管理器其实就是一个大的结构体,然后将一些重要的数据结构集中到一起。重点创建了两个队列ready_list和task_list来管理任务 2、进程主动放弃CPU 目前的系统中,CPU总是被用于安排运行处于就绪队列头部的进程的代码,所…

中仕公考怎么样?军队文职技能岗位介绍

军队文职技能岗位有哪些?中仕为大家介绍一下! ①公务员岗 学历要求:大专及以上; 工作内容:在勤务岗位从事服务保障工作; 报考优势:不限专业、对于专业要求不高; ②驾驶员 学历要求:大专及以上; 工作内容:运输物资和保养维护单位机动车辆; 报考优势:每年招考人数比较少…

零基础国产GD32单片机编程入门(七)USART串口485通讯实战含源码

文章目录 一.概要二.USART串口基本介绍三.GD32单片机USART内部结构图四.USART内部信号流向五.USART示波器信号解析六.485通讯基本概念七.配置一个USART数据收发例程进行485通讯实验八.工程源代码下载九.小结 一.概要 USART(Universal Synchronous/Asynchronous Rec…

Python函数(12时间处理正则表达式)

Python基础语法文章导航: Python基础(01初识数据类型&变量)Python基础(02条件&循环语句)Python基础(03字符串格式化&运算符&进制&编码)Python基础(04 基础练习…

深入浅出:模拟实现 C++ STL 中的 unordered_map 和 unordered_set

目录 引言基础知识 散列表哈希函数负载因子模拟实现 unordered_set 数据结构设计哈希函数碰撞解决策略插入操作查找操作删除操作模拟实现 unordered_map 键值对存储插入操作查找操作删除操作代码示例总结 1. 引言 unordered_map 和 unordered_set 是 C 标准模板库 (STL) 中非…

【Python基础】Python运算符

本文收录于 《Python编程入门》专栏,从零基础开始,分享一些Python编程基础知识,欢迎关注,谢谢! 文章目录 一、前言二、Python 运算符2.1 什么是运算符?2.2 Python算术运算符2.3 Python 比较运算符2.4 Pytho…

大数据-108 Flink 快速应用案例 重回Hello WordCount!方案1批数据 方案2流数据

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

OpenCV绘图函数(6)绘制椭圆函数ellipse()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 画出一个简单的或粗的椭圆弧或者填充一个椭圆扇形。 函数 cv::ellipse 使用更多的参数可以画出椭圆轮廓、填充的椭圆、椭圆弧或填充的椭圆扇形。…

复现很难吗?找我帮你解决烦恼

代码复现,算法复现,文章复现,科研复现 Matlab,Python均可 文献里的算法,方法均可复现, 提供代码改进,模型优化,增加模块,python代做,预测,微调&am…