当前位置: 首页 > news >正文

17. 电话号码的字母组合

给定一个仅包含数字 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'] 的一个数字。
class Solution {
public:
    //先做一个映射
    unordered_map<int,string>map = {
        {0,""},
        {1,""},
        {2,"abc"},
        {3,"def"},
        {4,"ghi"},
        {5,"jkl"},
        {6,"mno"},
        {7,"pqrs"},
        {8,"tuv"},
        {9,"wxyz"},
    };
    vector<string>res;
    string path;
    void backtracking(string& digits,int index){
        //index 表示遍历第几个集合
        if(index == digits.size()){
            res.push_back(path);
            return;
        }

        int digit = digits[index] - '0';
        string text = map[digit];
        for(int i = 0;i < text.size();i++){
            path.push_back(text[i]);
            backtracking(digits,index+1); // index+1:表示下一层(第二个集合)里面选元素
            //为什么和i没关系呢?因为每一次都要从 新集合里从第一个选取。
            path.pop_back();
        }
    }
    vector<string> letterCombinations(string digits) {
        if(digits.size() == 0) return res;
        backtracking(digits,0);
        return res;
    }
};

 

http://www.dtcms.com/a/2275.html

相关文章:

  • 深度学习DAY3:激活函数
  • 【RabbitMQ 实战】09 客户端连接集群生产和消费消息
  • Java架构师缓存架构设计解决方案
  • 小米、华为、iPhone、OPPO、vivo如何在手机让几张图拼成一张?
  • Qt开发学习笔记02
  • 面试之并查集
  • Ajax跨域访问,访问成功但一直走error不走success的的问题解决
  • 学习记忆——数学篇——案例——代数——方程——一元二次方程
  • 文生图3.0:添加背景图片 3个回车```文生图```
  • 京东数据分析平台:2023年8月京东奶粉行业品牌销售排行榜
  • Qt实现 图片处理器PictureEdit
  • Kafka日志索引详解以及生产常见问题分析与总结
  • AdaBoost(上):数据分析 | 数据挖掘 | 十大算法之一
  • 参与现场问题解决总结(Kafka、Hbase)
  • Hibernate验证用户提交对象信息
  • Typescript 综合笔记:解读一个github中的React 网页
  • 国微FPGA培训
  • 云计算:常用系统前端与后端框架
  • 岛屿的数量
  • 【【萌新的SOC学习之AXI接口简介】】
  • thinkphp6 - 超详细使用阿里云短信服务发送验证码功能,TP框架调用对接阿里云短信发验证码(详细示例代码,一键复制开箱即用)
  • 第二证券:汽车产业链股活跃,恒勃股份、博俊科技“20cm”涨停
  • BS EN 12104-2023 软木地砖检测
  • Flutter环境搭建及新建项目
  • 【Git笔记】之Git重命名详解
  • 【OSPF宣告——network命令与多区域配置实验案例】
  • 【Qt】三种方式实现抽奖小游戏
  • unity操作_Camera c#
  • fastadmin框架如何开启事务
  • GO 中的指针?