题目:

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。

给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母

示例:

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

代码分析:不太懂???

class Solution {public:vector<string> letterCombinations(string digits) {vector<string> combinations;if (digits.empty()) {return combinations;}unordered_map<char, string> phoneMap{{'2', "abc"},{'3', "def"},{'4', "ghi"},{'5', "jkl"},{'6', "mno"},{'7', "pqrs"},{'8', "tuv"},{'9', "wxyz"}};string combination;backtrack(combinations, phoneMap, digits, 0, combination); //从输入数字串的第一个元素开始return combinations;}void backtrack(vector<string>& combinations, const unordered_map<char, string>& phoneMap, const string& digits, int index, string& combination) {if (index == digits.length()) {   //对应的是输入的数字串中最后一个数字combinations.push_back(combination);} else {char digit = digits[index]; //从输入数字串的第index个开始。const string& letters = phoneMap.at(digit); //找出这个数字对应的字母串for (const char& letter: letters) {combination.push_back(letter); //将该数字对应字母串的第一个字母放入combinationbacktrack(combinations, phoneMap, digits, index + 1, combination); //递归,index+1,取下一个数字对应字符串的第一个字符combination.pop_back();//将已经得到的结果的最后一个字符串出栈,用于放置其他字母。}}}
};

leetcode17 电话号码的字母组合相关推荐

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

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

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

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

  3. leetcode17. 电话号码的字母组合--每天刷一道leetcode算法系列!

    作者:reed,一个热爱技术的斜杠青年,程序员面试联合创始人 前文回顾: leetcode1. 两数之和--每天刷一道leetcode系列! leetcode2. 两数相加--每天刷一道leetcod ...

  4. Leetcode--17.电话号码的字母组合

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

  5. [Swift]LeetCode17. 电话号码的字母组合 | Letter Combinations of a Phone Number

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...

  6. 2021-06-11 Leetcode17.电话号码的字母组合

    1.1我的思路 先建立一个数组,预先存好对应的信息 然后以其中一个数字对应的字符数组作为根节点,将另一个字符数组作为子叶节点,依次经行路径的搜索 不会的地方 1)何时返回? 2)第一个数字所对应的字符 ...

  7. 代码随想录第25天|216.组合总和III,17.电话号码的字母组合

    LeetCode216.组合总和||| 题目链接:216. 组合总和 III - 力扣(LeetCode) 思路: class Solution { public:int sum = 0,start ...

  8. LeetCode17:电话号码的字母组合(Javascript 解答)

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

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

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

最新文章

  1. Oracle 12c(12.1.0.5) oem agent silent install(静默安装agent)
  2. WordPress的body_class()函数详解
  3. 交流磁路matlab,严格地说,交流磁路计算应该用磁滞回线。
  4. java socket client_java socket client
  5. Python之网络编程(一)
  6. JavaScript基础视频教程总结(011-020章)
  7. MyBatis开发文档
  8. 经纬度在线查询 地名 批量 查询经纬度 经纬度 批量 查询地名
  9. php缩图代码是什么,php生成缩略图的类代码
  10. 126邮箱绑定QQ邮箱并微信提醒
  11. 解决使用Glide加载图片背景出现浅绿色
  12. 北京林业大学matlab公选课,北京林业大学视频类公共选修课学习指引-北京林业大学教务处.DOC...
  13. 二次型相似对角化的原因
  14. ORB特征点提取与均匀化——ORBSLAM2源码讲解(一)
  15. Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day22】—— 并发编程2
  16. 游戏编辑器制作(8)
  17. 解决路由报错Uncaught (in promise) NavigationDuplicated:
  18. 算法 |【实验5.3】:一元三次方程的根-连续区间的二分搜索求近似解
  19. 4.1二维曲线绘制(plot与fplot)
  20. 用 Python 给女友做了个可能会被打死的七夕礼物

热门文章

  1. BZOJ 3504: [Cqoi2014]危桥 [最大流]
  2. Shell脚本[运算表达式,条件控制语句]
  3. HDU 1005 Number Sequence
  4. linux常用svn命令
  5. UA MATH567 高维统计I 概率不等式5 推广Hoeffding不等式与Khintchine不等式
  6. 初步了解Windows应用程序内存结构 - 使用VMMAP工具
  7. ASP.NET Razor (标记)语言概要
  8. Promise.race 的原理
  9. SQL注入语法类型——报错注入
  10. 在Android中使用OpenGL ES开发第(五)节:GLSL基础语法