lc17.电话号码的字码组合

题目

给定一个仅包含数字 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'] 的一个数字。

链接:https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number

代码

class Solution {
public:
    /*
1.建立数字按键和字母之间的映射map
2.对digits字符串中的每个字母都进行组合递归函数是dfs(index,digits)
3.将digits当前按键字符对应的第i个数字push_back()到current中
3.如果遍历到digits的最后一个字符就直接将current字符串push_back()到ans中
4.在返回时就原字符串恢复
*/
        map<char,string> Map = {
            {'2',"abc"},
            {'3',"def"},
            {'4',"ghi"},
            {'5',"jkl"},
            {'6',"mno"},
            {'7',"pqrs"},
            {'8',"tuv"},
            {'9',"wxyz"}
        };
        
        vector<string> ans;
        string current;
        
        void dfs(int index,string digits){
            if(index == digits.size()){
                ans.push_back(current);
                return ;
            }
            
            //枚举所以的字母Map[digits[index]][i]
            for(int i = 0;i < Map[digits[index]].size();++i){
                //临时加入一个字符
                current.push_back(Map[digits[index]][i]);
                dfs(index+1,digits);
                //恢复现场,因为下一次还会用到相同字母
                current.pop_back();
            }       
        }
    vector<string> letterCombinations(string digits) {
        if(digits.size() == 0){
            return ans;
        }
        dfs(0,digits);
        return ans;
    }
};
基于Python的医学知识图谱问答系统源码+说明文档(毕业设计),个人经导师指导并认可通过的高分设计项目,评审分98分,项目中的源码都是经过本地编译过可运行的,都经过严格调试,确保可以运行!主要针对计算机相关专业的正在做大作业、毕业设计的学生和需要项目实战练习的学习者,资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 基于Python的医学知识图谱问答系统实现源码+说明文档(毕业设计)基于Python的医学知识图谱问答系统实现源码+说明文档(毕业设计)基于Python的医学知识图谱问答系统实现源码+说明文档(毕业设计)基于Python的医学知识图谱问答系统实现源码+说明文档(毕业设计)基于Python的医学知识图谱问答系统实现源码+说明文档(毕业设计)基于Python的医学知识图谱问答系统实现源码+说明文档(毕业设计)基于Python的医学知识图谱问答系统实现源码+说明文档(毕业设计)基于Python的医学知识图谱问答系统实现源码+说明文档(毕业设计)基于Python的医学知识图谱问答系统实现源码+说明文档(毕业设计)基于Python的医学知识图谱问答系统实现源码+说明文档(毕业设计)基于Python的医学知识图谱问答系统实现源码+说明文档(毕业设计)基于Python的医学知识图谱问答系统实现源码+说明文档(毕业设计)基于Python的医学知识图谱问答系统实现源码+说明文档(毕业设计)基于Python的医学知识图谱问答系统实现源码+说明文档(毕业设计)基于Python的医学知识图谱问答系统实现源码+说明文档(毕业设计)基于Python的医学知识图谱问答系统实现源码+说明文档(毕业设计)基于Python的医学知识图谱问答系统实现源码+说明文档(毕业设计)基于Python的医学知识图谱问答系统实现源码+说明文档(毕业
内容概要:本文以程序"Hello.c"为研究对象,系统剖析了C语言程序在Linux系统中的完整生命周期。通过GCC工具链对预处理、编译、汇编、链接等编译流程进行实证分析,揭示了可执行文件从源代码到进程的P2P(Program to Process)转化过程。借助readelf、objdump等工具深入解析ELF文件格式,探讨了进程管理中的fork-exec机制、虚拟内存的地址转换体系(包括段式管理、四级页表与TLB),以及动态链接库的加载原理。通过异常信号处理实验,验证了Linux系统的进程调度策略与存储管理机制。本案例研究将计算机系统核心概念具象化,构建了从高级语言到机器指令、从静态文件到动态进程的知识闭环,为深入理解计算机系统工作原理提供了实践范本。 适合人群:计算机专业学生、对计算机系统原理感兴趣的编程爱好者以及从事嵌入式开发、系统编程等相关领域的工程师。 使用场景及目标:①帮助读者理解编译过程的各个阶段及其工具链的使用;②通过具体实例讲解ELF文件格式及其解析;③深入探讨进程管理机制,包括fork-exec机制、虚拟内存管理、动态链接等;④通过异常信号处理实验,验证Linux系统的进程调度策略与存储管理机制。 其他说明:本文不仅详细描述了程序从源代码到可执行文件的转换过程,还通过实验验证了计算机系统核心概念的应用,为读者提供了理论与实践相结合的学习路径。建议读者结合实际操作,通过搭建实验环境,加深对计算机系统工作原理的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值