LeetCode OJ - Letter Combinations of a Phone Number
2016-01-12 22:24
274 查看
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.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/7/73/Telephone-keypad2.svg/200px-Telephone-keypad2.svg.png)
呃,其实看到题目还是有想法的,除了一个一个按顺序找,我还想出按照digit长度的奇偶性分,但是水平有限写不出来哇~~
然后参照:http://blog.csdn.net/china_wanglong/article/details/38495355
用了第一种递推的方法,加了个特殊情况:digits.length()==0
my answer:
Runtime: 40
ms
击败了0.07%
果然效率是低低的。。嗯嗯 继续好好学习 然后把自己的想法写出来
A mapping of digit to letters (just like on the telephone buttons) is given below.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/7/73/Telephone-keypad2.svg/200px-Telephone-keypad2.svg.png)
Input:Digit string "23" Output: ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].
呃,其实看到题目还是有想法的,除了一个一个按顺序找,我还想出按照digit长度的奇偶性分,但是水平有限写不出来哇~~
然后参照:http://blog.csdn.net/china_wanglong/article/details/38495355
用了第一种递推的方法,加了个特殊情况:digits.length()==0
my answer:
import java.util.*; public class Solution { public static List<String> letterCombinations(String digits) { String[] symbol = new String[]{ "","", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz" }; List<String> ret = new ArrayList<String>(); char[] middleTemp = new char[digits.length()]; if(digits.length()==0){ return ret; } dfsGetStr(digits,0,middleTemp,symbol,ret); return ret; } private static void dfsGetStr(String digits,int index,char[]middleStr,String[] symbol,List<String> ret){ if(index == digits.length()) { ret.add(new String(middleStr)); return ; } char strChar = digits.charAt(index); for(int i=0; i<symbol[strChar-'0'].length(); i++) { middleStr[index] = symbol[strChar-'0'].charAt(i); dfsGetStr(digits, index+1, middleStr, symbol, ret); } } public static void main(String[] args){ List<String> ans = letterCombinations("234"); System.out.println(ans); } }
Runtime: 40
ms
击败了0.07%
果然效率是低低的。。嗯嗯 继续好好学习 然后把自己的想法写出来
相关文章推荐
- leetcode 179 Largest Number
- leetcode 24 Swap Nodes in Pairs
- leetcode 2 Add Two Numbers 方法1
- leetcode 2 Add Two Numbers 方法2
- leetcode----Longest Substring Without Repeating Characters
- [LeetCode]47 Permutations II
- [LeetCode]65 Valid Number
- [LeetCode]123 Best Time to Buy and Sell Stock III
- [LeetCode] String Reorder Distance Apart
- [LeetCode] Sliding Window Maximum
- [LeetCode] Find the k-th Smallest Element in the Union of Two Sorted Arrays
- [LeetCode] Determine If Two Rectangles Overlap
- [LeetCode] A Distance Maximizing Problem
- leetcode_linearList
- leetcode_linearList02
- 021-Merge Two Sorted Lists(合并两个排好序的单链表);leetcode
- LeetCode[Day 1] Two Sum 题解
- LeetCode[Day 2] Median of Two Sorted Arrays 题解
- LeetCode[Day 3] Longest Substring Without... 题解
- LeetCode [Day 4] Add Two Numbers 题解