当前位置: 首页 > 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:vector<string> letterMap = {" ", "*", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};vector<string> res;vector<string> letterCombinations(string digits) {// 回溯法if(digits.empty()) return {};string letter = ""; // 存储可能得答案helper(digits, letter, 0);return res;}// 从 str 的 index 开始遍历可选项,将本轮选择的字母存入 lettervoid helper(string str, string &letter, int index){// 到str的最后一个位置之后的位置就得到了一个结果if(index == str.size()){res.push_back(letter);return ;}char c = str[index];int pos = c - '0';string mapString = letterMap[pos]; // 数字映射到可选字母for(int i = 0; i < mapString.size(); ++i){letter.push_back(mapString[i]);helper(str, letter, index + 1);letter.pop_back();         }}
};
http://www.lryc.cn/news/96124.html

相关文章:

  • Redis 基础知识和核心概念解析:理解 Redis 的键值操作和过期策略
  • Jenkins中sh函数的用法
  • Android 之 Canvas API 详解 (Part 3) Matrix 和 drawBitmapMesh
  • 基于Ubuntu 22.04 编译chip-tool工具
  • opencv-17 脸部打码及解码
  • JVM分享
  • Apache Dubbo CVE-2021-36162 挖掘过程
  • 开源框架面试题目整理
  • Mr. Cappuccino的第52杯咖啡——Mybatis环境搭建与使用
  • 了解Unity编辑器之组件篇Tilemap(五)
  • Linux字符设备操作函数
  • 吉林大学计算机软件考研经验贴
  • 2023-07-26力扣每日一题-区间翻转线段树
  • Java设计模式之 -- 桥接模式
  • 【node.js】02-path模块
  • 攻防世界-Reverse-re1
  • AES加密的基本常识和封装类
  • elasticsearch使用记录
  • UNI-APP_横屏切换竖屏出现样式混乱问题
  • 数据可视化(3)
  • AI面试官:MD5、DES、RSA、AES加密
  • Shell脚本学习-$$特殊变量
  • vscode中python插件过新导致无法正常debug问题解决安装vscode以前版本python插件教程
  • chrome macos编译
  • Linux环境下Elasticsearch相关软件安装
  • 【趟坑记录】d3.zoom()的正确使用姿势 @d3.v7
  • 基于 Docker + Nginx + Gitlab-runner 实现前端自动化部署流程
  • make/makefile的使用
  • Flutter中Navigator 跳转传参数和反向传参数
  • kettle开发-Day40-AI分流之case/switch