原理:

  • digits长度不一定,如果考虑多层循环,根本无法写出循环代码
  • 使用回溯算法,外层循环遍历当前数字的字母,然后递归遍历下个数字字母

C++实现:

unordered_map<char,string> map={{'2',"abc"},{'3',"def"},{'4',"ghi"},{'5',"jkl"},{'6',"mno"},{'7',"pqrs"},{'8',"tuv"},{'9',"wxyz"}};string s; //储存遍历字符串vector<string> ans; //储存最终结果void backtracking( string digits,int index){if(index==digits.size()) //如果下标为digits长度时,一组遍历就完成了{ans.push_back(s); //储存字符串return; }string a=map[digits[index]]; //当前数字的字母串for(int i=0;i<a.size();i++){s.push_back(a[i]); //将当前字母插入字符串backtracking(digits,index+1); //递归下个数字s.pop_back(); //一组字母组合已经储存,将字母串末尾字母出队,遍历当前数字的下个字母}}vector<string> letterCombinations(string digits) {if(digits.size()==0){return {};}s.clear();ans.clear();backtracking(digits,0);return ans;}

电话号码的字母组合(C++实现)相关推荐

  1. 《LeetCode力扣练习》第17题 电话号码的字母组合 Java

    <LeetCode力扣练习>第17题 电话号码的字母组合 Java 一.资源 题目: 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合.答案可以按 任意顺序 返回. 给出数 ...

  2. LeetCode 17电话号码的字母组合(搜索)18四数之和

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

  3. [Leetcode][第17题][JAVA][电话号码的字母组合][回溯]

    [问题描述][中等] [解答思路] 用哈希表/数组存储每个数字对应的所有可能的字母,然后进行回溯操作. 回溯过程中维护一个字符串,表示已有的字母排列(如果未遍历完电话号码的所有数字,则已有的字母排列是 ...

  4. 【LeetCode】【HOT】17. 电话号码的字母组合(递归)

    [LeetCode][HOT]17. 电话号码的字母组合 文章目录 [LeetCode][HOT]17. 电话号码的字母组合 package hot;import java.util.ArrayLis ...

  5. [DFS|回溯法] leetcode 17 电话号码的字母组合

    [DFS|回溯法] leetcode 17 电话号码的字母组合 1.题目 题目链接 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合. 给出数字到字母的映射如下(与电话按键相同).注意 ...

  6. 算法训练Day25 | LeetCode216. 组合总和III(和77.组合很像!);LeetCode17. 电话号码的字母组合(不同集合中组合)

    目录 LeetCode216. 组合总和III 1. 思路 2. 代码实现 3. 剪枝 4. 复杂度分析 5. 思考与收获 LeetCode17. 电话号码的字母组合 1. 思路 2. 代码实现 3. ...

  7. leetcode17 电话号码的字母组合,39 组合总和(python)

    文章目录 17. 电话号码的字母组合 分析 代码 通过截图 39. 组合总和 分析 代码 通过截图 代码 通过截图 17. 电话号码的字母组合 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的 ...

  8. Leetcode 电话号码的字母组合

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

  9. day21|216.组合总和III、17.电话号码的字母组合

    216.组合总和III 找出所有相加之和为 n 的 k 个数的组合,且满足下列条件: 只使用数字1到9 每个数字 最多使用一次 返回所有可能的有效组合的列表 .该列表不能包含相同的组合两次,组合可以以 ...

  10. Day25|组合板子|216. 组合总和 III| 17. 电话号码的字母组合

    组合板子+剪枝 216. 组合总和 III 剪枝操作? 17. 电话号码的字母组合 216. 组合总和 III class Solution {private:vector<int>tem ...

最新文章

  1. 头文件setjmp.h
  2. uva11111 Generalized Matrioshkas
  3. 使用零代码平台构建应用,应该怎样转变思路?
  4. AngularJS图片上传功能的实现
  5. idea搜狗输入法中文变成繁体字
  6. php游戏传奇,GitHub - esons/pmir2: php,swoole,mirserver,mir2,传奇2,服务器,游戏服务器
  7. POJ 3097 Falling Ice 笔记
  8. MiniGUI源码分析——GDI概览及Surface
  9. Python爬取天天基金网历史数据
  10. VOT(Visual Object Tracking)评价指标综述
  11. 纯C语言INI文件解析
  12. Springboot上传文件时提示405
  13. 每日一算法:矩阵中最大正方形面积
  14. C++实现double factorial双阶乘的算法(附完整源码)
  15. 检测下你的显示器是否有问题
  16. 设计模式怎样解决设计问题
  17. 怒放丝路22——扬笛国画人物作品赏析
  18. TensorFlow2.4 开发 基础篇① 张量和变量 (1)
  19. 红外探测器 - 超声波测速器 - 毫米波雷达探测器
  20. 泛式算法,仿函数和迭代器失效问题

热门文章

  1. 可爱女生开糖果花店,她两年时间就挣了一百万元
  2. 餐饮店如何做活动吸引人
  3. 考研英国文学复习要点
  4. Makefile中传递宏定义字符串给C
  5. 周志华教授:如何做研究与写论文?
  6. 如何使用GUID硬盘分区格式安装新windows系统
  7. Ubuntu常用磁盘工具Disks、GParted和系统清理应用Cleaner
  8. 微信小程序手把手入门教程
  9. 洛谷刷题C语言:Even? Odd? G、The Robot Plow G、pb的游戏(1)、询问学号、cover
  10. Cocos实战案例:高手解析《捕鱼达人3》怎样玩3D