LeetCode —— 17. 电话号码的字母组合

在这里插入图片描述
请添加图片描述

😶‍🌫️😶‍🌫️😶‍🌫️😶‍🌫️Take your time ! 😶‍🌫️😶‍🌫️😶‍🌫️😶‍🌫️
💥个人主页:🔥🔥🔥大魔王🔥🔥🔥
💥所属专栏:🔥魔王的修炼之路–C++🔥
如果你觉得这篇文章对你有帮助,请在文章结尾处留下你的点赞👍和关注💖,支持一下博主。同时记得收藏✨这篇文章,方便以后重新阅读。

17. 电话号码的字母组合

这个题目需要通过深度优先遍历DFS来解决,就相当于高中数学的排列组合,也类似于二叉树的前序遍历。

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
在这里插入图片描述
示例 1:
输入:digits = “23”
输出:[“ad”,“ae”,“af”,“bd”,“be”,“bf”,“cd”,“ce”,“cf”]
示例 2:
输入:digits = “”
输出:[]
示例 3:
输入:digits = “2”
输出:[“a”,“b”,“c”]
提示:
0 <= digits.length <= 4
digits[i] 是范围 [‘2’, ‘9’] 的一个数字。

//abc def ghi
void combine(vector<string>& cmb, string& digits, size_t i,string* map, string str)
{
   
    if(i == digits.size())
    {
   
        cmb.push_back(str);
        return;
    }


    for(int j = 0; j < (map[digits[i] - '0']).size(); j++)
    {
   
        combine(cmb, digits, i + 1, map, str + (map[digits[i] - '0'])[j]);
    }
}

class Solution {
   
public:
    vector<string> letterCombinations(string digits) {
   
        if(digits.size() == 0)
            return vector<string>();
        string map[10] = {
   "", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};//存数字对应的字母
        vector<string> cmb;//存组合的字母
        string str;
        size_t i = 0;//存当前走到第 i + 1个数字了
        combine(cmb, digits, i, map, str);
        return cmb;
    }
};
  • 博主长期更新,博主的目标是不断提升阅读体验和内容质量,如果你喜欢博主的文章,请点个赞或者关注博主支持一波,我会更加努力的为你呈现精彩的内容。

🌈专栏推荐
😈魔王的修炼之路–C语言
😈魔王的修炼之路–数据结构初阶
😈魔王的修炼之路–C++
😈魔王的修炼之路–Linux
更新不易,希望得到友友的三连支持一波。收藏这篇文章,意味着你将永久拥有它,无论何时何地,都可以立即找到重新阅读;关注博主,意味着无论何时何地,博主将永久和你一起学习进步,为你带来有价值的内容。

请添加图片描述

相关推荐

  1. LeetCode 17.电话号码字母组合

    2024-02-01 13:08:01       13 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-01 13:08:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-01 13:08:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-01 13:08:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-01 13:08:01       18 阅读

热门阅读

  1. 影响PCBA制造成本的因素有哪些?

    2024-02-01 13:08:01       35 阅读
  2. 【Spring框架】@Cacheable注解:缓存最佳实践

    2024-02-01 13:08:01       35 阅读
  3. ffmpeg 从视频文件抓取图片 (帧)的用法

    2024-02-01 13:08:01       28 阅读
  4. docker概念和常见命令

    2024-02-01 13:08:01       34 阅读
  5. Fiddler-03总结

    2024-02-01 13:08:01       27 阅读
  6. Kerberos安装

    2024-02-01 13:08:01       29 阅读
  7. [python] 使用sqlparse 解析和美化SQL

    2024-02-01 13:08:01       23 阅读
  8. Linux 分卷压缩命令

    2024-02-01 13:08:01       36 阅读
  9. MongoDB 中的事务

    2024-02-01 13:08:01       35 阅读
  10. CF1918 D. Blocking Elements [二分+数据结构优化dp]

    2024-02-01 13:08:01       32 阅读