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~

相关推荐
IT小番茄1 小时前
Kubernetes云平台管理实战:自动加载到负载均衡(七)
算法
笑口常开xpr1 小时前
【C++继承】深入浅出C++继承机制
开发语言·数据结构·c++·算法
让我们一起加油好吗2 小时前
【基础算法】DFS
算法·深度优先
爱学习的小鱼gogo3 小时前
python 矩阵中寻找就接近的目标值 (矩阵-中等)含源码(八)
开发语言·经验分享·python·算法·职场和发展·矩阵
红纸2813 小时前
Subword算法之WordPiece、Unigram与SentencePiece
人工智能·python·深度学习·神经网络·算法·机器学习·自然语言处理
CUMT_DJ4 小时前
从零复现论文(1)——通感一体化实现协作基站分配与资源分配(CBARA)策略
算法·通感一体化
tt5555555555554 小时前
CSDN 教程:C++ 经典字符串与栈算法题逐行详解
c++·算法·哈希算法
_dindong4 小时前
基础算法:滑动窗口
数据结构·学习·算法·leetcode·力扣
Voyager_45 小时前
图像处理踩坑:浮点数误差导致的缩放尺寸异常与解决办法
数据结构·图像处理·人工智能·python·算法
文艺倾年5 小时前
【八股消消乐】手撕分布式协议和算法(基础篇)
分布式·算法