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

leetcode第17题求电话号码组合

原题出于leetcode第17题https://leetcode.cn/problems/letter-combinations-of-a-phone-number/description/题目如下:

题目稍微有点复杂,初看会感觉特别复杂,首先我们需要理清思路:

  • 最后的结果是字母组合,因此遍历的是字母,而字母对应数字,因此需要用二维数组构建从数字到字母的映射

  • 假设digits=“23”,需要先从[a,b,c]中取一个字母,再从[d,e,f]中取,树形结构如下:

4.1树型结构

4.2代码

class Solution {
public:
    string letterMap[10]={"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
    string s;
    vector<string> result;
    void backtracking(string digits,int index=0){
        if(index==digits.size()){
            result.push_back(s);
            return ;
        }
        int digit=digits[index]-'0';
        string letter=letterMap[digit];
        for(int i=0;i<letter.size();i++){
            s.push_back(letter[i]);
            backtracking(digits,index+1);
            s.pop_back();
        }
        return ;
    }
    vector<string> letterCombinations(string digits) {
        if(digits.empty()) return {}; 
        backtracking(digits);
        return result;
    }
};

以上树型结构图片出自代码随想录

相关文章:

  • 14. LangChain项目实战1——基于公司制度RAG回答机器人
  • MCAL-存储器驱动
  • 三次握手内部实现原理
  • easyExcel使用案例有代码
  • Nabla 分数阶微积分定义
  • 一次单精度天线的调优过滤
  • ZT21 【模板】差分
  • Python 面向对象编程-继承与多态
  • SyntaxError: positional argument follows keyword argument
  • CountDownLatch与CyclicBarrier使用及区别
  • Visual Studio Code集成MarsCode AI
  • 【Python 初级函数详解】—— 参数沙漠与作用域丛林的求生指南
  • 693. 交替位二进制数
  • ETL-kettle数据转换使用详解
  • 利用STM32TIM自制延迟函数实验
  • jeecgboot项目idea启动项目(二)
  • Java基础语法38(异常处理try-catch和throws)
  • 40岁开始学Java:避免创建不必要的对象
  • 分治算法+题目
  • 基金 word-->pdf图片模糊的解决方法
  • dede被挂赌博网站木马/百度推广开户渠道
  • 九号线香网站建设/网络推广是网络营销的基础
  • 网站做线/厦门seo代运营
  • 国务院 网站建设发展指引/企业网站建设的作用
  • 仿一个展示型网站多少钱/百度推广一个关键词多少钱
  • 连接器零售在什么网站做/怎样在百度上发布自己的文章