【DFS】LeetCode 17. Letter Combinations of a Phone Number

ABB变频器使用PROFINET IO通信模块时的激活方法 阅读详情

LeetCode 17. Letter Combinations of a Phone Number

Solution1:我的答案

利用8皇后同样的方法,回溯+递归
时间复杂度 O(3n) O ( 3 n ) ,空间复杂度 O(n) O ( n )
1.1写的略复杂

class Solution {
public:
    vector<string> letterCombinations(string digits) {
        if (digits.size() == 0) return vector<string>();
        set<string> result; //自动避免重复
        unordered_map<char, vector<string> > num = {{'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"}}
                                                     };
        string temp = ""; 
        int start = 0;
        Combinate(num, result, temp, digits, start);
        return vector<string> (result.begin(), result.end());
    }

    void Combinate(unordered_map<char, vector<string>>& num, 
                   set<string>& result, string temp, string& digits, int start) {
        if (start == digits.size()) {
            result.insert(temp);
            return;
        }
        else {
            for (int i = 0; i < num[digits[start]].size(); i++) {
                temp = temp + num[digits[start]][i];
                Combinate(num, result, temp, digits, start + 1);
                temp.erase(temp.size() - 1);
            }
        }
    }
};

1.2代码略微简化一点

class Solution {
public:
    vector<string> letterCombinations(string digits) {
        if (digits.size() == 0) return vector<string>();
        set<string> result; //自动避免重复
        vector<string> num = {"abc", "def", "ghi", "jkl", 
                              "mno", "pqrs", "tuv", "wxyz"};
        string temp = ""; 
        int start = 0;
        Combinate(num, result, temp, digits, start);
        return vector<string> (result.begin(), result.end());
    }

    void Combinate(vector<string>& num, set<string>& result, 
                   string temp, string& digits, int start) {
        if (start == digits.size()) {
            result.insert(temp);
            return;
        } else {
            for (int i = 0; i < num[digits[start] - '2'].size(); i++) {
                temp = temp + num[digits[start] - '2'][i];
                Combinate(num, result, temp, digits, start + 1);
                temp.erase(temp.size() - 1);
            }
        }
    }
};

几个重要注意事项

1.C++的string对象利用下标操作符“[]”得到的数据类型是char,要初始化char类型的数据要用单引号修饰单个字符;
2.编译错误stray ‘\343’ in program解决办法
这种错误是由于代码中含有中文的引号or其他的全脚符号引起的,而小编遇到的是由中文空格引起的,不易发现
参考链接:https://blog.youkuaiyun.com/u012349696/article/details/51043830

华为OD机试 - 荒岛求生 - 栈Stack(Python/JS/C/C++ 新系统 100分) 每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新,全天优快云在线答疑。 阅读详情

相关推荐

GD32F303 Keil 工程项目从零搭建实战指南

本文是一份详细的GD32F303 Keil工程项目从零搭建实战指南。文章阐述了亲手搭建工程的重要性,并逐步指导开发者完成从环境准备、目录规划、工程创建、文件添加、关键配置到编译调试的全过程。重点讲解了如何正确选择启动文件、添加外设库、配置头文件路径和全局宏,旨在帮助开发者深入理解工程结构,掌握GD32F303开发的核心技能,实现从“会用”到“懂”的跨越。

weixin_29190651的博客 404

LeetCode 17 Letter Combinations of a Phone Number 递归与DFS的使用

Letter Combinations of a Phone Number Given a digit string, return all possible letter combinations that the number could represent. A mapping of digit to letters (just like on the telephone b

gx262091291的专栏 724

Tessent ATPG进阶:解锁多种Fault Model的工程实践与选型指南

本文深入探讨Tessent ATPG中多种Fault Model的工程实践与选型策略,涵盖Stuck-at、Transition、Bridge等核心模型的应用场景与配置技巧。通过实际案例解析,展示如何组合不同Fault Model提升芯片测试覆盖率,特别针对汽车电子、超低功耗芯片等复杂场景提供专业解决方案。

weixin_30219613的博客 198

LeetCode 17 Letter Combinations of a Phone Number (DFS)

Given a string containing digits from2-9inclusive, return all possible letter combinations that the number could represent. A mapping of digit to letters (just like on the telephone buttons) is giv...

Tc的专栏 223

告别手动发日报!用n8n+钉钉打造智能报告机器人(含模板下载)

本文详细介绍了如何利用n8n开源工作流自动化平台与钉钉机器人搭建智能日报系统,实现数据自动采集、处理和发送。通过实战步骤和模板下载,帮助用户告别手动处理日报的繁琐,提升工作效率和数据准确性。

h3i4j的博客 855

【已验证】基于STM32F407与AD9833的幅频特性测试装置设计与实现

本文详细介绍了基于STM32F407微控制器和AD9833 DDS芯片的低成本幅频特性测试装置设计与实现方法。通过扫频原理,该装置能自动生成正弦波信号,测量滤波器等电路的输出幅度变化,并在LCD屏幕或示波器上绘制幅频特性曲线。文章提供了从硬件选型、CubeMX工程配置、关键驱动代码编写到数据处理与可视化的完整教程,帮助电子爱好者与工程师快速搭建实用的滤波器测试工具。

weixin_35649491的博客 120

LeetCode OJ-17.Letter Combinations of a Phone Number(DFS)

LeetCode OJ-17.Letter Combinations of a Phone Number(DFS解法)题目描述 Given a digit string, return all possible letter combinations that the number could represent. A mapping of digit to letters (just

oYinGui1 1038

若依框架集成saToken

若依版本3.8.8,鉴权采用security框架,这种框架太重,项目中想实现对外提供接口功能。尽快减少修改原框架的逻辑基础上,采用satoken实现。

sccd2009的专栏 1482

DFS深度遍历 leetcode 17 Letter Combinations of a Phone Number

Given a digit string, return all possible letter combinations that the number could represent. A mapping of digit to letters (just like on the telephone buttons) is given below. Input:Digit st

E01014165的专栏 563

阻抗控制器实现机器人关节运动控制

本文先对做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章如:PID反馈控制器、前馈控制器、前馈+反馈控制器等等如:机械臂模型(几何解算)控制器、小车底盘运动学模型(几何解算)的控制器、四足机器人模型(预测迭代)的控制器等等如:微分平坦(无人机的轨迹跟随)等等如:MPC优化控制算法如:线性二次调节器(LQR)是基于模型的控制器,使用车辆状态来使误差最小化,Apollo使用LQR进行横向控制。横向控制包含四个组件:横向误差、横向误差的变化率、朝向误差和朝向的变化率。

qq_35635374的博客 364

多无人车协同探索开源包部署教程及常见报错解决方式

本博客将介绍项目的基本概念、部署步骤以及常见问题的解决方案。该项目利用 RRT(Rapidly-exploring Random Tree)算法,通过多机器人协作进行高效的环境探索,适用于自动化与自主导航任务。项目简介:介绍该项目的核心算法、特点及应用场景,展示如何通过多个机器人共同工作来提升探索效率。部署教程:详细讲解如何在 ROS Noetic 环境中部署该项目,安装依赖、创建工作空间、克隆代码并编译项目。项目运行:包括单机器人与多机器人自主探索的示例,帮助读者快速理解和实践项目。

慕羽★的博客 1764

leetcode 17. Letter Combinations of a Phone Number 深度优先搜索

题目大意就是:手机上的九键建立了一个数字和字母的对应关系,一个数字可能对应多个字母。输入一串数字,每个数字用一个它对应的某个字母代替,这一串数字就转化成了一串字母,输出所有可能的字母。 这道题用DFS搜索就可以求解了。以输入“232”为例。 2对应a,b,c三个字母。3对应着d,e,f 这三个字母。 首先是第一层数字2,第一层为数字2对应的第一个字母a 接着到第二层数字3,第二层为数字3对...

LOVETEDA的博客 271

数学建模之0—1规划(Python)

目录 1、概述 (1)知识框架 (2)线性整数规划模型 (3)分支定界法 2、案例 (1)案例1​ (2)案例2 3、遗传算法—sko-GA包实现 (1)代码 (2)结果 4、PuLp实现 (1)代码 (2)结果 5、致谢 1、概述 (1)知识框架 (2)线性整数规划模型 (3)分支定界法 2、案例 (1)案例1 (2)案例2 3、遗传算法—sko-GA包...

weixin_46039719的博客 4108

LeetCode 17-Letter Combinations of a Phone Number(DFS)

题目: https://leetcode.com/problems/letter-combinations-of-a-phone-number/ 概述: 给一个手机键盘,按两个按钮,看有多少种字母组合的可能。 思路: 简单的DFS即可。 class Solution { public: vector&amp;amp;amp;amp;lt;string&amp;amp;amp;amp;gt; res; void dfs(int...

FGY_u的博客 267

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

DFS专题--【LeetCode】17. Letter Combinations of a Phone Number

  Input:Digit string "23" Output: ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]. 中心思想:找出input digit string对应的数字的全部集合。本质就是若干for循环。 dfs类题目,可以把要输出的

cj423889的专栏 284

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

LeetCode C++ 17. Letter Combinations of a Phone Number【DFS/Backtracking】中等

Given a string containing digits from 2-9 inclusive, return all possible letter combinations that the number could represent. A mapping of digit to letters (just like on the telephone buttons) is given below. Note that 1 does not map to any letters. Examp

memcpy0的博客 650

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

LeetCode-17 Letter Combinations of a Phone Number(手机拨码-DFS)

LeetCode-17 Letter Combinations of a Phone Number(手机拨码-DFS) Given a digit string, return all possible letter combinations that the number could represent. A mapping of digit to letters (just l

你若嘻哈过盛,别人就不再欣赏你的认真 572

dfs全排列总结

首先考虑遍历的终止条件,就是每个digit都访问到了的情况,所以我们使用index来记录目前访问了几位digit。这个题是一个二叉树问题,对于列表里的每个元素,我们都可以选择加入或不加入列表。遇到这样的题首先可以画图。全排列分为两种,2叉树和k叉树,这题就是个k叉树。由此我们可以把他转换成dfs问题,只要把k叉树遍历即可。在访问时用cur 字符串来记录当前遍历路径所生成的字符串。使用dfs 即可,因为有回溯所以每次加完了需要pop。比如输入“23”,即可画出下图。

mayuqing98的博客 507

DFS+回溯专题1 - leetcode17. Letter Combinations of a Phone Number

17. Letter Combinations of a Phone Number 题目描述 输入一只包含2-9数字的字符串, 返回所有可能的字母组合。数字-字母映射如图所示(像电话按键,注意数字1不匹配任何字母) 例子 Input: “23” Output: [“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”]. 解法 法1是常规D...

libh的博客 275

leetcode 17. Letter Combinations of a Phone Number 按照indexDFS深度优先遍历

Given a digit string, return all possible letter combinations that the number could represent. A mapping of digit to letters (just like on the telephone buttons) is given below. Input:Digit string

JackZhangNJU的专栏 378

LeetCode 17. Letter Combinations of a Phone Number 题解

本题是回溯算法的经典问题,主要考察对回溯思想的理解和应用。通过维护一个路径数组和索引,我们可以生成所有可能的字母组合。回溯算法的核心思想是:通过选择、递归、回溯的过程,遍历所有可能的解空间,找到符合条件的解。建立数字到字母的映射表,方便快速查找每个数字对应的字母。当处理完所有数字时,将当前组合添加到结果中。对于每个数字,遍历其对应的所有字母,递归生成组合。这种方法不仅适用于电话号码的字母组合问题,还可以应用于许多其他组合问题,例如排列问题、组合问题等。

cannonjinx的博客 4386

【LeetCode】17.Letter Combinations of a Phone Number(medium)

【LeetCode】17.Letter Combinations of a Phone Number(medium)解题报告 题目地址:https://leetcode.com/problems/letter-combinations-of-a-phone-number/description/ 题目描述:   Given a digit string, return all poss

郝春雨的博客 306

LeetCode 17.Letter Combinations of a Phone Number(电话号码的字母组合) 回溯(DFS+剪枝)/medium

文章目录1.Description2.Example3.Solution 1.Description 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 2.Example 输入:digits = "23" 输出:["ad","ae","af","bd","be","bf","cd","ce","cf"] 输入:digits = "" 输出:[] 输入:digits = "2" 输出

押切徹的博客 142

LeetCode Letter Combinations of a Phone Number

手机按键上每个数字都对应了多个字母,如2对应了”abc”,现给出一个数字串,要求把其中的每个数字都转化为对应的字母中的一个,列出所有的组合情况。

DRFish 1723

LeetCode 17. Letter Combinations of a Phone Number

LeetCode 17. Letter Combinations of a Phone NumberDescriptionExampleNoteCodeConclusion Description Given a string containing digits from 2-9 inclusive, return all possible letter combinations that the...

gq__97的博客 435

17. Letter Combinations of a Phone Number

按照花花酱的schedule来刷题了。先刷Search 17 是个combination problem。造一个table,然后把电话的每一位,翻译成各种可能性。 基本是3个loop,电话号码一个loop,每个数字的可能性一个loop,和已有的result是一个loop。 class Solution: def letterCombinations(self, digits: str) -...

SpanningWings的博客 263
上一篇: LeetCode 20. Valid Parentheses
下一篇: LeetCode 22. Generate Parentheses
Allenlzcoder
博客等级 码龄10年 925粉丝 512原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值