《LeetCode力扣练习》第17题 电话号码的字母组合 Java



一、资源

  • 题目:

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

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

  • 上代码(经过线上OJ测试)
    import java.util.*;/*** Created with IntelliJ IDEA.** @author : DuZhenYang* @version : 2022.03.01  18:01:48* description :*/
    public class LeetCode {public List<String> letterCombinations(String digits) {List<String> result =new ArrayList<>();if(digits.length()==0){return result;}HashMap<Character,String> phone =new HashMap<>();phone.put('2',"abc");phone.put('3',"def");phone.put('4',"ghi");phone.put('5',"jkl");phone.put('6',"mno");phone.put('7',"pqrs");phone.put('8',"tuv");phone.put('9',"wxyz");backTrack(result,phone,digits,0,new StringBuffer());return result;}private void backTrack(List<String> result, HashMap<Character, String> phone, String digits, int index, StringBuffer combination) {if(index==digits.length()){result.add(combination.toString());}else {char ch =digits.charAt(index);String letters =phone.get(ch);int lettersCount =letters.length();for (int i=0;i<lettersCount;i++){combination.append(letters.charAt(i));backTrack(result,phone,digits,index+1,combination);combination.deleteCharAt(index);}}}
    }
    

《LeetCode力扣练习》第17题 电话号码的字母组合 Java相关推荐

  1. LeetCode算法题17:电话号码的字母组合(Java版)

    LeetCode传送门:电话号码的字母组合 题目描述 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合. 给出数字到字母的映射如下(与电话按键相同).注意 1 不对应任何字母. 示例: ...

  2. 《LeetCode力扣练习》第96题 不同的二叉搜索树 Java

    <LeetCode力扣练习>第96题 不同的二叉搜索树 Java 一.资源 题目: 给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回 ...

  3. 《LeetCode力扣练习》第75题 颜色分类 Java

    <LeetCode力扣练习>第75题 颜色分类 Java 一.资源 题目: 给定一个包含红色.白色和蓝色.共 n 个元素的数组 nums ,原地对它们进行排序,使得相同颜色的元素相邻,并按 ...

  4. 《LeetCode力扣练习》第64题 最小路径和 Java

    <LeetCode力扣练习>第64题 最小路径和 Java 一.资源 题目: 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为 ...

  5. 《LeetCode力扣练习》第62题 不同路径 Java

    <LeetCode力扣练习>第62题 不同路径 Java 一.资源 题目: 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 "Start" ). ...

  6. 《LeetCode力扣练习》第56题 合并区间 Java

    <LeetCode力扣练习>第56题 合并区间 Java 一.资源 题目: 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, ...

  7. 《LeetCode力扣练习》第55题 跳跃游戏 Java

    <LeetCode力扣练习>第55题 跳跃游戏 Java 一.资源 题目: 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 . 数组中的每个元素代表你在该位置可以跳跃的最大 ...

  8. 《LeetCode力扣练习》第617题 合并二叉树 Java

    <LeetCode力扣练习>第617题 合并二叉树 Java 一.资源 题目: 给你两棵二叉树: root1 和 root2 . 想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些 ...

  9. 《LeetCode力扣练习》第461题 汉明距离 Java

    <LeetCode力扣练习>第461题 汉明距离 Java 一.资源 题目: 两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目. 给你两个整数 x 和 y,计算并返回 ...

最新文章

  1. 解决Visual Studio For Mac Restore失败的问题
  2. 抽象工厂和工厂设计模式之间有什么区别?
  3. 一级二级标题_考二级造价师有啥要求?
  4. java对象头_浅谈java对象结构 对象头 Markword
  5. java 图片不能正常移动_Java,我的图像不会更新/移动
  6. Docker学习文档之三 其他相关-生产环境
  7. ORA-12504:TNS:监听程序在CONNECT_DATA中未获得SERVICE_NAME
  8. 算法偏见是什么_人工智能中的偏见有什么作用?
  9. HDU 1402(FFT,NNT)
  10. Redis——Lettuce的主从哨兵模式
  11. 为什么书上说是 TCP 四次挥手,但是实际会出现 TCP 三次挥手?
  12. 用异地组网路由器,实现家校互联
  13. 毕业四年后的程序员继续租房子
  14. 红米k30至尊纪念版和华为mate30pro哪个值得买
  15. Ubuntu安装X265+FFMPEG
  16. 怎么批量重命名文件夹123456
  17. 华云三维CrownCAD携手上飞院,追逐中国“大飞机梦”
  18. 蒸汽弹头 Steam Slug 俄语REPACK版,下载,及其补丁
  19. IOS - app账号appstoreconnect信息,审核,上传确认项,被拒记录 解决方案中心 回复 申诉 超级签
  20. 学习Android开发高手课

热门文章

  1. 4.3.6 无分类编址CIDR
  2. FPGA 和ASIC开发的区别
  3. No module named 'xxx’
  4. nGrinder详细介绍及性能工具对比
  5. jsonp跨域实现单点登录,跨域传递用户信息以及保存cookie注意事项
  6. C#复制、粘贴文本信息到剪贴板
  7. 任务管理器进程中多个chrome.exe的问题
  8. redmine 2.2.x 修改文档附件的存放目录
  9. Glib实例学习(5)平衡二叉树
  10. 软件工程 软件的估计为什么这么难