博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【leetcode刷题笔记】Letter Combinations of a Phone Number
阅读量:5162 次
发布时间:2019-06-13

本文共 1599 字,大约阅读时间需要 5 分钟。

Given a digit string, return all possible letter combinations that the number could represent.

A mapping of digit to letters (just like on the telephone buttons) is given below.

Input:Digit string "23"Output: ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].

Note:

Although the above answer is in lexicographical order, your answer could be in any order you want.


 

题解:用一个二维数组map保存数字到字母的映射,然后深度优先递归搜索如下的一棵树(以"23"为例,树不完整)

代码如下:

1 public class Solution { 2     public List
letterCombinations(String digits) { 3 ArrayList
answer = new ArrayList
(); 4 5 char[][] map = {
{'a','b','c'},{'d','e','f'},{'g','h','i'},{'j','k','l'},{'m','n','o'},{'p','q','r','s'},{'t','u','v'},{'w','x','y','z'}}; 6 String currentPath = new String(); 7 8 DeepSearch(map, answer, digits, currentPath); 9 return answer;10 }11 12 public void DeepSearch(char[][] map,List
answer,String digits,String currentPath){13 if(digits.length() == 0)14 {15 String temp = new String(currentPath);16 answer.add(temp);17 18 return;19 }20 21 int now = digits.charAt(0) - '0';22 for(int j = 0;j < map[now-2].length;j++){23 currentPath += map[now-2][j];24 DeepSearch(map, answer, digits.substring(1), currentPath);25 currentPath = currentPath.substring(0, currentPath.length()-1);26 }27 }28 }

 

转载于:https://www.cnblogs.com/sunshineatnoon/p/3836489.html

你可能感兴趣的文章
BZOJ 3747 洛谷 3582 [POI2015]Kinoman
查看>>
vue实战(7):完整开发登录页面(一)
查看>>
Visual Studio自定义模板(二)
查看>>
【Mood-20】滴滤咖啡做法 IT工程师加班必备 更健康的coffee 项目经理加班密鉴
查看>>
读《构建之法-软件工程》第四章有感
查看>>
使用 Printf via SWO/SWV 输出调试信息
查看>>
.net 分布式架构之分布式锁实现(转)
查看>>
吴恩达机器学习笔记 —— 3 线性回归回顾
查看>>
Problem E: Automatic Editing
查看>>
SpringBoot 使用 MyBatis 分页插件 PageHelper 进行分页查询
查看>>
《DSP using MATLAB》Problem 6.17
查看>>
微信公众平台开发实战Java版之如何网页授权获取用户基本信息
查看>>
一周TDD小结
查看>>
sizeof与strlen的用法
查看>>
Linux 下常见目录及其功能
查看>>
开源框架中常用的php函数
查看>>
nginx 的提升多个小文件访问的性能模块
查看>>
set&map
查看>>
集合类总结
查看>>
4.AE中的缩放,书签
查看>>