首页 > 代码库 > Letter Combinations of a Phone Number

Letter Combinations of a Phone Number

Letter Combinations of a Phone Number

 

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.

参考:http://www.cnblogs.com/tgkx1054/p/3298501.html

度娘过后,发现很多人用的都是dfs递归实现的,当然直接贴代码的还是很多,我也是这样的。

 1 import java.util.ArrayList; 2 import java.util.Arrays; 3 import java.util.List; 4  5 public class Solution { 6     List<String> result = new ArrayList<String>(); 7     String dict[] = {"", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"}; 8     String path = ""; 9     10     public List<String> letterCombinations(String digits) {11         dfs(digits);12         13         return result;14     }15     16     /**17      * 这里用dfs来解决18      * @param dep19      * @param digits20      */21     public void dfs(String digits){22         if(digits.length() == 0){23             result.add(path);24         }else{25             for(int i = 0; i < dict[digits.charAt(0) - ‘0‘].length(); i++){26                 path += dict[digits.charAt(0) - ‘0‘].charAt(i);27                 dfs(digits.substring(1, digits.length()));28                 path = path.substring(0, path.length() - 1);29             }30         }31     }32 }

 

Letter Combinations of a Phone Number