LeetCode17 电话号码的字母组合

前言

题目: 17. 电话号码的字母组合
文档: 代码随想录------电话号码的字母组合
编程语言: C++
解题状态: 没搞出来...

思路

还是回溯的路子,不过关键在于找到总的集合,在这个大集合里面进行回溯,本题的大集合就比较隐蔽,不太容易发现。

代码

cpp 复制代码
class Solution {
private:
    const string letterMap[10] = {
        "",
        "",
        "abc",
        "def",
        "ghi",
        "jkl",
        "mno",
        "pqrs",
        "tuv",
        "wxyz",
    };
public:
    vector<string> res;
    string s;
    void backtracking(const string& digits, int index) {
        if (index == digits.size()) {
            res.push_back(s);
            return;
        }

        int digit = digits[index] - '0';
        string letters = letterMap[digit];
        for (int i = 0; i < letters.size(); i++) {
            s.push_back(letters[i]);
            backtracking(digits, index + 1);
            s.pop_back();
        }
    }
    vector<string> letterCombinations(string digits) {
        s.clear();
        res.clear();
        if (digits.size() == 0) {
            return res;
        }
        backtracking(digits, 0);
        return res;
    }
};
相关推荐
长沙京卓12 分钟前
【无人机算法】低空经济下无人机巡检检测识别算法(城市、林业、水利)
算法·无人机
qq_3106585113 分钟前
mediasoup源码走读(十二)——router
服务器·c++·音视频
hn小菜鸡14 分钟前
LeetCode 1971.寻找图中是否存在路径
算法·leetcode·职场和发展
Han.miracle22 分钟前
数据结构与算法--007三数之和(medium)
算法·leetcode·排序算法
听风吹等浪起24 分钟前
机器学习算法:随机梯度下降算法
人工智能·深度学习·算法·机器学习
落羽的落羽26 分钟前
【C++】哈希扩展——位图和布隆过滤器的介绍与实现
linux·服务器·开发语言·c++·人工智能·算法·机器学习
仁桃仁呀29 分钟前
160.相交链表
数据结构·算法·链表
汪宁宇29 分钟前
如何在QT5+MinGW环境中编译使用QGIS开发地图应用
c++·qt·qgis·mingw·地图库
普密斯科技32 分钟前
从点测量到解决方案:光谱共焦技术如何集成于运动平台,实现3D轮廓扫描与透明物体测厚?
人工智能·算法·计算机视觉·3d·集成测试·测量
fish_xk38 分钟前
类和对象(二)
开发语言·c++·算法