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

LeetCode17. 电话号码的字母组合(2024秋季每日一题 59)

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

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

在这里插入图片描述

示例 1:

输入:digits = “23”
输出:[“ad”,“ae”,“af”,“bd”,“be”,“bf”,“cd”,“ce”,“cf”]

示例 2:

输入:digits = “”
输出:[]

示例 3:

输入:digits = “2”
输出:[“a”,“b”,“c”]

提示:

0 < = d i g i t s . l e n g t h < = 4 0 <= digits.length <= 4 0<=digits.length<=4
digits[i] 是范围 [‘2’, ‘9’] 的一个数字。


思路:

  • 根据给定的数字键,遍历数字,枚举对应位置的字母
  • 如果遍历到最后一个数字,则将当前这个字符串加入最终的答案
  • 返回最终的字符串集合
class Solution {
public:unordered_map<int, string> h;vector<string> res;vector<string> letterCombinations(string digits) {if(digits.size() == 0) return res;h[2] = "abc";h[3] = "def";h[4] = "ghi";h[5] = "jkl";h[6] = "mno";h[7] = "pqrs";h[8] = "tuv";h[9] = "wxyz";dfs(digits, 0, "");return res;}void dfs(string s, int d, string ans){if(s.size() == ans.size()){res.push_back(ans);return;}for(auto &c: h[s[d] - '0']){dfs(s, d + 1, ans + c);}}
};

http://www.mrgr.cn/news/67227.html

相关文章:

  • 华为HD集群重启NAMENODE实例操作步骤
  • 纯前端生成PDF(jsPDF)并下载保存或上传到OSS
  • yolov8涨点系列之轻量化主干网络替换
  • C#实现傅里叶变换算法
  • keepalived mysql8互为主从, 要注意哪些问题
  • 容器迭代器
  • IDEA构建JavaWeb项目,并通过Tomcat成功运行
  • C语言程序的机器表示(逆向+函数调用栈详解版)
  • 【入门篇】2.10 串口打印Helloworld
  • VisionPro —— 颜色匹配工具详解
  • Linux APT 教程:从入门到精通
  • [C语言]多组输入的几种方法
  • 华为HD集群重启NAMENODE实例操作步骤
  • 交换机和集线器的区别
  • 软件测试面试题个人总结
  • 推荐程序员好用的浏览器插件
  • 【金融风控】相关业务介绍及代码详解
  • C/C++中指针
  • 流程与模式
  • 大模型LLama3!!!Ollama下载、部署和应用(保姆级详细教程)
  • python实战(七)——基于LangChain的RAG实践
  • ABAP开发:数据库表更新时机介绍
  • 数组和指针的复杂关系
  • STL整理
  • 终端文件管理神器 !!!
  • 电商行业企业员工培训的在线知识库构建