首页 > 其他分享 >#yyds干货盘点# LeetCode面试题:电话号码的字母组合

#yyds干货盘点# LeetCode面试题:电话号码的字母组合

时间:2023-02-17 20:02:50浏览次数:42  
标签:digits yyds 面试题 combination combinations index phoneMap put 字母组合

题目:

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

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

 

示例 1:

输入:digits = "23"

输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]

示例 2:

输入:digits = ""

输出:[]

示例 3:

输入:digits = "2"

输出:["a","b","c"]

代码实现:

class Solution {
public List<String> letterCombinations(String digits) {
List<String> combinations = new ArrayList<String>();
if (digits.length() == 0) {
return combinations;
}
Map<Character, String> phoneMap = new HashMap<Character, String>() {{
put('2', "abc");
put('3', "def");
put('4', "ghi");
put('5', "jkl");
put('6', "mno");
put('7', "pqrs");
put('8', "tuv");
put('9', "wxyz");
}};
backtrack(combinations, phoneMap, digits, 0, new StringBuffer());
return combinations;
}

public void backtrack(List<String> combinations, Map<Character, String> phoneMap, String digits, int index, StringBuffer combination) {
if (index == digits.length()) {
combinations.add(combination.toString());
} else {
char digit = digits.charAt(index);
String letters = phoneMap.get(digit);
int lettersCount = letters.length();
for (int i = 0; i < lettersCount; i++) {
combination.append(letters.charAt(i));
backtrack(combinations, phoneMap, digits, index + 1, combination);
combination.deleteCharAt(index);
}
}
}
}

标签:digits,yyds,面试题,combination,combinations,index,phoneMap,put,字母组合
From: https://blog.51cto.com/u_15488507/6064496

相关文章

  • 前端常见面试题(三)深拷贝代码
    constobj1{age:20,name:'xxx',address:{city:'beijing'}arr:['a','b','c']}constobj2=obj1obj2.address.city='shangh......
  • #yyds干货盘点 react笔记之学习之显示日期
    前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从......
  • #yyds干货盘点 react笔记之学习之修改log组件
    前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从......
  • 前端常见面试题(二)CSS
    1、(布局)盒模型宽度计算offsetwidth=(内容宽度+内边距+边框),无外边距。100+10*2+1*2=122px 补充:如果让offsetwith=100px该如何做?添加box-sizing=border-box 2、(布......
  • #yyds干货盘点#重新解读一下ES6的Set
    Set如果要用一句来描述,我们可以说: ​​​Set​​​是一种叫做集合的数据结构。​什么是集合?集合是由一堆无序的、相关联的,且不重复的内存结构【数学中称为元素】组成的组合......
  • 2023前端开发最新面试题收集-Javascript篇
    前台、中台、后台-前台:面向用户、客户可以感知的,如商城-中台:可以看着对前台的补充,公共服务功能,如支付系统、搜索系统、客服-后台:面向运营、比如商品管理、物流管理1......
  • 2023前端开发最新面试题收集-Vue2/3篇
    Vue整理1、谈谈MVVM的理解MVC(react):数据流是单向的,View和Model之间通过controller连接通信,用户操作会请求服务器,路由拦截分发请求,调用对应的控制器controller,控制器会......
  • 2023前端开发最新面试题收集-Webpack篇
    webpack整理谈谈webpack的理解webpack是一个静态模块打包器。当webpack处理应用程序时,会递归构建一个依赖关系图,其中包括应用程序所需的所有模块,最后将这些模块打包成一......
  • 自动化测试面试题
    一、你有没有做过自动化测试我在xx项目中实施了web自动化测试,我们项目中搭建自动化测试框架技术:python+selenium+unittest+ddt+jenkins,然后用的POM分层的模式(面向对象思想......
  • 【LeetCode】电话号码的字母组合
    电话号码的字母组合题目给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。答案可以按任意顺序返回。给出数字到字母的映射如下(与电话按键相同)。注意1......