【leetcode C++】电话号码的字母组合

17. 电话号码的字母组合

题目

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。

给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。

 

 

题目链接 

. - 力扣(LeetCode)

文字 和 画图 分析

这道题明显是需要互相匹配,如 字符串 “23”, 对应 “abc” 和 “def”。

这个时候我们就想到跟循环有关,但是我们很难控制出 for循环的个数 ,所以最好的办法就是采用递归

参数我们需要:digits (含 2-9 的字符串),di(表示层数) ,

tmp (每一层对应的字符串),t (接收每一次递归结束时的字符串)

注意事项:

  1. tmp 不要传引用 ,便于递归结束时可以对应到上一层的字符串
  2. t 需要传引用 ,我们需要每一次递归结束都保留相应的字符串
  3. 递归尽量参数不要使用 +=,否则递归结束,回到上一层,参数存储的值不会变

举例(digits = "23"):

递归顺序:

代码 

class Solution 
{
private:
string letter[10] = {"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
public:
    void _letterCombinations(string& digits,string tmp,int di,vector<string>& t)
    {
        if(di == digits.size())
        {
            t.push_back(tmp);
            return;
        }
        int n = digits[di] - '0';
        string s = letter[n];
        for(auto i : s)
        {
            _letterCombinations(digits,tmp + i,di + 1,t);
        }
    }
    vector<string> letterCombinations(string digits) 
    {
        vector<string> t;
        if(digits.size() == 0)
        {
            return t;
        }
        _letterCombinations(digits,"",0, t);
        return t;
    }
};

相关推荐

  1. 电话号码字母组合-算法

    2024-03-10 12:52:05       46 阅读
  2. leetcode电话号码字母组合

    2024-03-10 12:52:05       48 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-10 12:52:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-10 12:52:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-10 12:52:05       82 阅读
  4. Python语言-面向对象

    2024-03-10 12:52:05       91 阅读

热门阅读

  1. 当Github启用PSA之后...

    2024-03-10 12:52:05       42 阅读
  2. 鸿蒙 进程模型-公共事件

    2024-03-10 12:52:05       43 阅读
  3. 解释 Git 的基本概念和使用方式

    2024-03-10 12:52:05       43 阅读
  4. VGG16-CF-VGG11实验报告

    2024-03-10 12:52:05       48 阅读
  5. vscode中开发goalng,debug时遇到的tools报错问题

    2024-03-10 12:52:05       43 阅读
  6. 用spark进行数据查询常用语法总结

    2024-03-10 12:52:05       48 阅读
  7. 数据仓库的主流分层架构

    2024-03-10 12:52:05       47 阅读
  8. 基于qt实现的类的序列化和反序列化

    2024-03-10 12:52:05       48 阅读
  9. 云原生技术实践:Kubernetes集群的部署与运维

    2024-03-10 12:52:05       41 阅读
  10. pytorch CV入门4-使用MobileNet解决视觉相关问题

    2024-03-10 12:52:05       33 阅读
  11. 【pytorch可视化工具】

    2024-03-10 12:52:05       41 阅读
  12. 基于Python调用SCIP求解器的入门文档

    2024-03-10 12:52:05       51 阅读