Leetcode:电话号码的字母组合

题目链接: 17. 电话号码的字母组合 - 力扣(LeetCode)

普通版本(回溯)

cpp 复制代码
class Solution {
public:
    string tmp;//临时存放尾插内容
    vector<string> res;//将尾插好的字符串成组尾插给res
    vector<string> board={"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};//为了使得num与字符串在数组中的位置相对应
    //数字2对应的字符串应该board数组中的下标为2的字符串,即"abc"
    //数字3对应的字符串应该board数组中的下标为3的字符串,即"def"
    //数字4对应的字符串应该board数组中的下标为4的字符串,即"ghi"
    //...

    //pos用于记录是否遍历完整个digits字符串
    void DFS(int pos,string digits)//深度优先遍历
    {
        if(pos==digits.size())//整个字符串遍历完后就退出
        {
            res.push_back(tmp);
            return;
        }
        
        int num=digits[pos]-'0';//用字符串转整数的方式获取digit中的各个数字

        for(int i=0;i<board[num].size();i++)
        {
            tmp.push_back(board[num][i]);
            DFS(pos+1,digits);
            tmp.pop_back();//尾删,只删除一个
        }
    }


    vector<string> letterCombinations(string digits) 
    {
        if(digits.size()==0) 
        {
            return res;
        }
        DFS(0,digits);
        return res;
    }
};

优化版本(待补充)

~over~

相关推荐
计算机安禾7 分钟前
【数据结构与算法】第22篇:线索二叉树(Threaded Binary Tree)
c语言·开发语言·数据结构·学习·算法·链表·visual studio code
算法鑫探21 分钟前
解密2025数字密码:数位统计之谜
c语言·数据结构·算法·新人首发
计算机安禾31 分钟前
【数据结构与算法】第21篇:二叉树遍历的经典问题:由遍历序列重构二叉树
c语言·数据结构·学习·算法·重构·visual studio code·visual studio
信奥胡老师41 分钟前
P1255 数楼梯
开发语言·数据结构·c++·学习·算法
爱睡懒觉的焦糖玛奇朵2 小时前
【工业级落地算法之人员摔倒检测算法详解】
人工智能·python·深度学习·神经网络·算法·yolo·目标检测
小辉同志2 小时前
78. 子集
算法·leetcode·深度优先
Book思议-2 小时前
【数据结构】二叉树入门全解:从定义、性质到经典真题
数据结构·算法·二叉树
酉鬼女又兒2 小时前
零基础快速入门前端ES6 核心特性详解:Set 数据结构与对象增强写法(可用于备赛蓝桥杯Web应用开发)
开发语言·前端·javascript·职场和发展·蓝桥杯·es6
stolentime3 小时前
通信题:洛谷P15942 [JOI Final 2026] 赌场 / Casino题解
c++·算法·洛谷·joi·通信题
初生牛犊不怕苦3 小时前
与AI一起学习《C专家编程》:数组与指针
c语言·学习·算法