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'] 的一个数字。

cpp 复制代码
//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
更新不易,希望得到友友的三连支持一波。收藏这篇文章,意味着你将永久拥有它,无论何时何地,都可以立即找到重新阅读;关注博主,意味着无论何时何地,博主将永久和你一起学习进步,为你带来有价值的内容。

相关推荐
倔强菜鸟29 分钟前
2025.8.10-学习C++(一)
开发语言·c++·学习
小灰灰的FPGA1 小时前
9.9元奶茶项目:matlab+FPGA的cordic算法(向量模式)计算相位角
算法·matlab·fpga开发
ZXF_H1 小时前
C/C++预定义宏与调试日志输出模板
开发语言·c++·日志·调试·预定义宏
2401_841495642 小时前
【数据结构】顺序表的基本操作
数据结构·c++·算法·顺序表·线性表·线性结构·顺序表的基本操作
自信的小螺丝钉2 小时前
Leetcode 138. 随机链表的复制 哈希 / 拼接+拆分
leetcode·链表·哈希算法
元亓亓亓2 小时前
LeetCode热题--207. 课程表--中等
算法·leetcode·职场和发展
坚持编程的菜鸟2 小时前
LeetCode每日一题——有效的字母异位词
c语言·算法·leetcode
未知陨落2 小时前
LeetCode:70.最小栈
数据结构·算法·leetcode
小糖学代码2 小时前
STL的list模拟实现(带移动构造和emplace版本)
c语言·数据结构·c++·windows·list
jikiecui2 小时前
信奥崔老师:常用编译命令g++的基本使用
算法