十七、电话号码的字母组合
题目:来源于leetcode
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
代码:
class Solution {public:vector<string> letterCombinations(string digits) {vector<string> Comletters;if(digits.empty()){return Comletters;}unordered_map<char,string> numberMap{{'2',"abc"},{'3',"def"},{'4',"ghi"},{'5',"jkl"},{'6',"mno"},{'7',"pqrs"},{'8',"tuv"},{'9',"wxyz"}};string comletter;//采取递归地方式来解决所有组合问题backtrack(Comletters,numberMap,digits,0,comletter);return Comletters;}void backtrack(vector<string>&Comletters,const unordered_map<char,string>& numberMap,const string& digits, int index, string& comletter){if(index==digits.length()){Comletters.push_back(comletter);}//有两个vector,这个是外面的,到最后完成了所有的内层,再一个个存入最后的vectorelse{char digit = digits[index];const string& letters = numberMap.at(digit);// letters是数字对应的所有字母组成的字符串常量for(const char& letter: letters){comletter.push_back(letter);//这个是里面的vector,以23为例,首先应该是a,然后去迭代3对应的所有字母backtrack(Comletters,numberMap,digits,index+1,comletter);comletter.pop_back();//以23为例,一开始是a,然后是ad,pop出d变为a,在循环一下变为ae,pop出e变为a,最后是af}}}
};
总结:
学会了unorder_map;递归嵌套有所熟悉、pop_back;发现在c++中注释写多了也会占用执行时间,有点无语。。。
十七、电话号码的字母组合相关推荐
- 《LeetCode力扣练习》第17题 电话号码的字母组合 Java
<LeetCode力扣练习>第17题 电话号码的字母组合 Java 一.资源 题目: 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合.答案可以按 任意顺序 返回. 给出数 ...
- LeetCode 17电话号码的字母组合(搜索)18四数之和
电话号码的字母组合 题目描述 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合. 给出数字到字母的映射如下(与电话按键相同).注意 1 不对应任何字母. 示例: 输入:"23 ...
- [Leetcode][第17题][JAVA][电话号码的字母组合][回溯]
[问题描述][中等] [解答思路] 用哈希表/数组存储每个数字对应的所有可能的字母,然后进行回溯操作. 回溯过程中维护一个字符串,表示已有的字母排列(如果未遍历完电话号码的所有数字,则已有的字母排列是 ...
- 【LeetCode】【HOT】17. 电话号码的字母组合(递归)
[LeetCode][HOT]17. 电话号码的字母组合 文章目录 [LeetCode][HOT]17. 电话号码的字母组合 package hot;import java.util.ArrayLis ...
- [DFS|回溯法] leetcode 17 电话号码的字母组合
[DFS|回溯法] leetcode 17 电话号码的字母组合 1.题目 题目链接 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合. 给出数字到字母的映射如下(与电话按键相同).注意 ...
- 算法训练Day25 | LeetCode216. 组合总和III(和77.组合很像!);LeetCode17. 电话号码的字母组合(不同集合中组合)
目录 LeetCode216. 组合总和III 1. 思路 2. 代码实现 3. 剪枝 4. 复杂度分析 5. 思考与收获 LeetCode17. 电话号码的字母组合 1. 思路 2. 代码实现 3. ...
- leetcode17 电话号码的字母组合,39 组合总和(python)
文章目录 17. 电话号码的字母组合 分析 代码 通过截图 39. 组合总和 分析 代码 通过截图 代码 通过截图 17. 电话号码的字母组合 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的 ...
- Leetcode 电话号码的字母组合
电话号码的字母组合 题目描述: 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合.给出数字到字母的映射如下(与电话按键相同).注意 1 不对应任何字母 题目链接 class Solut ...
- day21|216.组合总和III、17.电话号码的字母组合
216.组合总和III 找出所有相加之和为 n 的 k 个数的组合,且满足下列条件: 只使用数字1到9 每个数字 最多使用一次 返回所有可能的有效组合的列表 .该列表不能包含相同的组合两次,组合可以以 ...
- Day25|组合板子|216. 组合总和 III| 17. 电话号码的字母组合
组合板子+剪枝 216. 组合总和 III 剪枝操作? 17. 电话号码的字母组合 216. 组合总和 III class Solution {private:vector<int>tem ...
最新文章
- 【学习笔记】超简单的多项式求逆(含全套证明)
- STL,ATL,WTL之间的联系和区别
- 互联网1分钟 | 1017
- php对应哪个oracle版本,Oracle 版本说明
- Error:The supplied javaHome seems to be invalid. I cannot find the java executable
- synchronized 加锁 this 和 class 的区别!
- android 日期时间类,Android 日期时间等转换工具类
- MAVEN 的常用命令
- 说说你对Jdk并发包中的CAS实现的了解?
- 2022跨年烟花代码(五)HTML5全屏烟花特效
- SIFT算法学习总结
- 计算机故障排除原则和方法
- creo扫描选择多条链作为轨迹_Creo与Proe可变截面扫描关系式雨伞建模实例-一加一学院...
- Serializable serialVersionUID作用
- php jquery制作抖音,抖音制作优质脚本的方法在这里
- MySQL–ROW_NUMBER
- k8s 1.23.1部署gitlab、 gitlab-runn配置k8s集群编写.gitlab-ci.yml实现根据tag,分支发布CICD流程
- adb remount 报错:Binder ioctl to enable oneway spam detection failed: Invalid argument
- 简答实现登录注册(需要导入JQ库)
- Maven 错误找不到符号