博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Letter Combinations of a Phone Number
阅读量:4908 次
发布时间:2019-06-11

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

1. Question

给一个数字字符串,按照电话上各个数字对应的字母,返回该字符串代表的所有可能的字母组合。

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"].

2. Solution(O(3n))

考虑特殊情况:

  • 空串

2.1 遍历法

依次遍历字符串中的每个数,寻找可能的组合。

public List
letterCombinations( String digits ){ String[] map = { " ", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"}; int len = digits.length(); LinkedList
res = new LinkedList
(); if( len<1 ) return res; res.add(""); for( int i=0; i
View Code

2.2 树搜索法

对数字进行解析,相当于遍历一棵树,可以使用数的遍历算法

public List
letterCombinations(String digits) { List
result = new ArrayList
(); String[] map = new String[10]; map[0] = ""; map[1] = ""; map[2] = "abc"; map[3] = "def"; map[4] = "ghi"; map[5] = "jkl"; map[6] = "mno"; map[7] = "pqrs"; map[8] = "tuv"; map[9] = "wxyz"; char[] middleTemp = new char[digits.length()]; dfsGetStr(digits, 0, middleTemp, map, result); return result; } private void dfsGetStr(String digits,int index, char[] middleStr, String[] map, List
result) { if(index == digits.length()) { result.add(new String(middleStr)); return ; } char strChar = digits.charAt(index); for(int i=0; i
View Code

 

posted on
2015-07-03 23:05 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/hf-cherish/p/4607097.html

你可能感兴趣的文章
List、Map、Set
查看>>
关于iOS多线程
查看>>
[转]Linux之type命令
查看>>
flash画图API:解析obj格式
查看>>
近日国家几个简单的思考
查看>>
JBoss 7/WildFly Domain 模式怎样配置 Server 启动的 JVM 參数
查看>>
(转)通往(革命性的、不做恶的、疯狂赚钱的、自我毁灭的)Google核心之路
查看>>
hubust 1339Touring (最短路Dijkstra算法)
查看>>
实验四 小学生四则运算需求分析结对报告
查看>>
转换CLOB字段类型为VARCHAR2, lob类型不支持的sql语句
查看>>
用nRF52的RTC实现万年历
查看>>
mysql 外键约束
查看>>
CSS设置透明背景
查看>>
APP自動化測試腳本3
查看>>
[git] branch 分支操作
查看>>
谭浩强 c程序设计 8.17用递归法将一个整数n转换成字符串。例如,输入486,应输出字符串"486"。n的位数不确定,可以是任意位数的整数。...
查看>>
HtmlEncode和JavaScriptEncode(预防XSS)
查看>>
Visual Studio 2012 应用软件开发新方式
查看>>
sql中EXEC和sp_execsql区别-------------------------------------------待叙写
查看>>
JS监听回车事件
查看>>