[leetcode-17]Letter Combinations of a Phone Number(java)
2015-07-27 14:29
633 查看
问题描述:
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”].
分析:这道题比较简单,可能稍微需要动动脑子的地方就是最后如何拼接成字符串的形式。这里使用链表来模拟队列。
代码如下:284ms
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”].
分析:这道题比较简单,可能稍微需要动动脑子的地方就是最后如何拼接成字符串的形式。这里使用链表来模拟队列。
代码如下:284ms
[code]public class Solution { private String getString(int number){ switch (number){ case '2':return "abc"; case '3':return "def"; case '4':return "ghi"; case '5':return "jkl"; case '6':return "mno"; case '7':return "pqrs"; case '8':return "tuv"; case '9':return "wxyz"; default:return null; } } public List<String> letterCombinations(String digits) { List<String> res = new LinkedList<String>(); int length = digits.length(); String[] strings = new String[length]; if(length<=0) return res; for(int i = 0;i<length;i++){ strings[i] = getString(digits.charAt(i)); } for(int row = 0;row<strings[0].length();row++){ res.add(new String(new char[]{strings[0].charAt(row)})); } for(int col = 1;col<length;col++){ int size = res.size(); for(int i = 0;i<size;i++){ String tmp = res.get(0); String next = strings[col]; res.remove(0); for(int j = 0;j<next.length();j++) res.add(tmp+next.charAt(j)); } } return res; } }
相关文章推荐
- spring中间scope详细解释
- Java中List和ArrayList的区别
- 适配器模式-Adapter Pattern
- Ecilpse绑定jdk的源代码
- Struts2----自定义action的学习心得
- Spring MVC之@RequestParam @RequestBody @RequestHeader 等详解
- Eclipse中关联android sdk源码
- eclipse转码插件详解
- Hadoop为什么不用JavaSetialization?
- 大家好,我是一个JAVA初学者,想在这里记下自己学习过程中的点点滴滴,请多多关照
- CORE JAVA study note(CHAPTER THREE)
- 冒泡排序算法原理及JAVA实现
- struts2上传
- java(JDBC连接数据库)[完整版封装]
- 红黑树 原理和算法详细介绍(Java)
- Java项目初学-------满汉楼----如何动态加载图片做背景?
- Java初学项目------满汉楼:工具栏+菜单栏
- 吸血鬼数字检验之java实现
- Spring Autowire自动装配
- java字段与属性的区别