题目:
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.
题解:
不太会,找了个代码,运行错误,先存着吧,以后看
public class Solution {
public List<String> letterCombinations(String digits) {
ArrayList<String> result=new ArrayList<String>();
if(digits==null)return result;
String[] keyboard={"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
StringBuilder current=new StringBuilder();
int index=0;
buildResult(digits, index, current, keyboard, result);
return result;
}
private void buildResult(String digits, int index, StringBuilder current, String[] keyboard, ArrayList<String> result){
if (index==digits.length()){
result.add(current.toString());
return;
}
int num=digits.charAt(index)-'0'; // get integer number
for(int i=0; i<keyboard[num].length(); i++){
current.append(keyboard[num].charAt(i));
buildResult(digits, index+1, current, keyboard, result);
current.deleteCharAt(current.length()-1);
}
}
}