标签:
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"].
对于这道题,首先需要将每个数字对应的字符信息存起来,之后用双重循环去遍历,在首次添加的时候需要单独拎出来
1 package Letter.Combinations.of.a.PhoneNumber; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 public class LetterCombinationsOfaPhoneNumber { 7 public static void main(String args[]){ 8 String s="22"; 9 List<String> list=letterCombinations(s); 10 for(String ss:list){ 11 System.out.println(ss); 12 } 13 } 14 public static List<String> letterCombinations(String digits) { 15 List<String> dic[]=new ArrayList[10]; 16 List<String> result=new ArrayList<String>(); 17 if(digits.isEmpty()){ 18 result.add(""); 19 return result; 20 } 21 //初始化 22 for(int i=0;i<10;i++){ 23 dic[i]=new ArrayList<String>(); 24 } 25 26 //填充字典 27 dic[2].add("a"); 28 dic[2].add("b"); 29 dic[2].add("c"); 30 31 dic[3].add("d"); 32 dic[3].add("e"); 33 dic[3].add("f"); 34 35 dic[4].add("g"); 36 dic[4].add("h"); 37 dic[4].add("i"); 38 39 dic[5].add("j"); 40 dic[5].add("k"); 41 dic[5].add("l"); 42 43 dic[6].add("m"); 44 dic[6].add("n"); 45 dic[6].add("o"); 46 47 dic[7].add("p"); 48 dic[7].add("q"); 49 dic[7].add("r"); 50 dic[7].add("s"); 51 52 dic[8].add("t"); 53 dic[8].add("u"); 54 dic[8].add("v"); 55 56 dic[9].add("w"); 57 dic[9].add("x"); 58 dic[9].add("y"); 59 dic[9].add("z"); 60 61 //将输入的String转换成Int[] 62 int len=digits.length(); 63 char[] aa=digits.toCharArray(); 64 int intdig []=new int[len]; 65 for(int i=0;i<len;i++){ 66 intdig[i]=Integer.parseInt(String.valueOf(aa[i])); 67 } 68 //转换 69 70 for(int i=0;i<intdig.length;i++){ 71 int cur=intdig[i]; 72 if(cur==1||cur==0) 73 continue; 74 if(result.size()==0){ 75 for(String s:dic[cur]) 76 { 77 result.add(s); 78 } 79 }else{ 80 List<String> temp=new ArrayList<String>(); 81 for(String s:dic[cur]){ 82 for(String ss:result){ 83 temp.add(ss+s); 84 } 85 } 86 result.clear(); 87 for(String tempS:temp){ 88 result.add(tempS); 89 } 90 } 91 92 } 93 return result; 94 } 95 }
Leetcode Letter Combinations of a Phone Number
标签:
原文地址:http://www.cnblogs.com/criseRabbit/p/4202477.html