LeetCode 017. 电话号码的字母组合 dfs
地址 https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 输入:"23" 输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].
算法1
DFS做法 从每个数字对应的元素中选出一个 然后进入下一层
最终每层中都选出一个对应的元素 则组合成一个答案
以数字23为例
class Solution { public: map<char, string> m = { {'2',"abc"},{'3',"def"}, {'4',"ghi"},{'5',"jkl"}, {'6',"mno"},{'7',"pqrs"}, {'8',"tuv"},{'9',"wxyz"} }; vector<string> ans; void dfs(string s, string digits, int idx) { if (idx == digits.size()) { ans.push_back(s); return; } char digt = digits[idx]; for (int j = 0; j < m[digt].size(); j++) { s += m[digt][j]; dfs(s, digits,idx + 1); s.pop_back(); } } vector<string> letterCombinations(string digits) { if(digits.size() == 0) return vector<string> (); string s; dfs(s, digits, 0); return ans; } };
作 者: itdef
欢迎转帖 请保持文本完整并注明出处
技术博客 http://www.cnblogs.com/itdef/
B站算法视频题解
https://space.bilibili.com/18508846
qq 151435887
gitee https://gitee.com/def/
欢迎c c++ 算法爱好者 windows驱动爱好者 服务器程序员沟通交流
如果觉得不错,欢迎点赞,你的鼓励就是我的动力
欢迎转帖 请保持文本完整并注明出处
技术博客 http://www.cnblogs.com/itdef/
B站算法视频题解
https://space.bilibili.com/18508846
qq 151435887
gitee https://gitee.com/def/
欢迎c c++ 算法爱好者 windows驱动爱好者 服务器程序员沟通交流
如果觉得不错,欢迎点赞,你的鼓励就是我的动力
![阿里打赏](https://files.cnblogs.com/files/itdef/ali2.bmp)
![微信打赏](https://files.cnblogs.com/files/itdef/weixin2.bmp)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步