首页 > 编程语言 >dfs回溯算法,拨号

dfs回溯算法,拨号

时间:2023-11-15 10:57:40浏览次数:31  
标签:digits index 示例 res 拨号 dfs current 回溯

题目

电话号码的字母组合
给定一个仅包含数字 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'] 的一个数字。
相关标签

C++

解答

class Solution {
public:
// 定义数字到字母的映射关系
unordered_map<char, string> digitMap = {
{'2', "abc"},
{'3', "def"},
{'4', "ghi"},
{'5', "jkl"},
{'6', "mno"},
{'7', "pqrs"},
{'8', "tuv"},
{'9', "wxyz"}
};
vector res;
void dfs(string digits,int index,string current){
if(index == digits.length()&& digits.length()>=1){
res.push_back(current);
}
for(char c:digitMap[digits[index]]){
current += c;
dfs(digits,index+1,current);
current.pop_back();
}

}
vector<string> letterCombinations(string digits) {
    res.clear();
    dfs(digits,0,"");
    return res;
}

};

关键

dfs处理,利用递归函数处理,一层一层解决,把每一个字母拿出来处理,处理完返回,就可以实现全部遍历

标签:digits,index,示例,res,拨号,dfs,current,回溯
From: https://www.cnblogs.com/minipython-wldx/p/17833329.html

相关文章

  • DFS和BFS
    DFS: acwing842递归搜索树 1#include<iostream>2usingnamespacestd;34constintN=10;5intn;6intpath[N];7boolst[N];89voiddfs(intu)10{11if(u==n)//一个分支走到头12{13for(inti=0;i<n;i++)......
  • 回溯法与分支限界法
    回溯法2023-11-1220:16:25好文分享:https://blog.csdn.net/qq_53549930/article/details/1241369861.子集树有时问题是要从一个集合的所有子集中搜索一个集合,作为问题的解。当问题是要计算n个元素的子集,以便达到某种优化目标时,可以把这个解空间组织成一棵子集树。复杂度Ω(......
  • CF1316D Nash Matrix(构造/dfs)
    题目第一次做构造题,做了两节晚自习qwq一开始我完全是正着想,首先\(X\)是显然的,但其他的点就不好做了,然后我就想,可行的一般结论推不出,那就想反例,然后我想啊想......倒是想到了几个,比如说环与环之间不能有相交,环内外的点不能互相到达,跟本举不完,而且也不好实现,还是要想一般结论......
  • 回溯算法
    回溯算法处理5w条数据优化❓:我想根据当前节点id回溯出他的路径层级扁平数组......
  • 编译Fastdfs报错——In file included from ../common/fdfs_global.c:21:0: ../common
    记录一下安装fastdfs时编译报错,报错信息如下:原因:这是因为我们在安装较新版得fastdfs时,从github下载得安装包缺少文件,如果按照网上很多博主较早之前写的文档操作得话就会出现这样得错误,缺少了libserverframe网络框架解决方法:安装 libserverframe网络框架安装包下载地......
  • 分布式文件系统FastDFS
    目录目前系统存在的缺点分布式文件系统FastDFS介绍概念架构文件上传文件下载目前系统存在的缺点目前是通过tomcat提供虚拟目录的方式供用户访问;当然也可以通过nginx实现静态资源访问的方式文件冗余在tomcat挂了的情况下不能提供服务;目前是单一文件服务的存储(依赖tomcat不能进......
  • 14-回溯
    14.回溯问自己三个问题:当前操作应该是什么?子问题是什么?下一个子问题应该是什么?14.1Master公式形如$$T(N)=a*T(\frac{N}{b})+O(N^d)$$其中的a、b、d都是常数的递归函数,可以直接通过Master公式来确定时间复杂度如果log(b,a)<d,复杂度为O(N^d)如果log(b,a)......
  • HDFS集群压测实践
    1.背景在部署Hadoop集群时,作为集群运维人员,往往需要了解集群性能。即集群能够处理数据的上限,集群的瓶颈等信息。特别是在上线一批尚未使用过的机型、磁盘时,更需要了解这些硬件上的变更是否会对集群整体性能有影响。本文介绍当DataNode挂载juicefs情况下,集群的性能表现;并且和只挂......
  • 回溯随笔
    回溯问题通用模板voidbacktracking(参数){if(终止条件){存放结果;return;}for(选择:本层集合中元素(树中节点孩子的数量就是集合的大小)){处理节点;backtracking(路径,选择列表);//递归回溯,撤销处理结果}......
  • HDFS基于Ranger鉴权原理
    1.背景在HDFS中,默认是通过setacl和getacl命令的方式增加和查询hdfs的acl信息。为了了解acl信息,需要亲自登陆机器执行hdfs命令,对于没有机器权限的业务人员非常不友好;同时,运维人员无法浏览HDFS所有acl信息,对于管理来说也不透明。为了解决该问题,引入了Ranger组件,将acl信息存放到Ran......