Letter Combinations of a Phone Number

来源:互联网 发布:河北师范大学网络 编辑:程序博客网 时间:2024/06/16 12:44

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

public static List<String> letterCombinations(String digits) {List<String> result = new ArrayList<String>();if(digits.isEmpty())return result;String[] map ={"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};int[] number = new int[digits.length()];//存储digits中每个字符在循环中的编号,初始为0int k = digits.length()-1;while(k>=0) {k = digits.length()-1;String charTemp="";for(int i=0; i<digits.length(); i++) charTemp+=String.valueOf(map[digits.charAt(i)-'0'].charAt(number[i]));result.add(charTemp);while(k>=0) {if( number[k] < (map[digits.charAt(k)-'0'].length()-1) ) {number[k]++;break;} else {number[k] = 0;k--;}}}return result;}


0 0
原创粉丝点击