题目链接:https://leetcode.com/problems/letter-combinations-of-a-phone-number/description/
项目源码:https://github.com/haha174/daylx
Given a string containing digits from 2-9 inclusive, 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. Note that 1 does not map to any letters.
其实看到下面的样例就很懂这个意思了
Input: "23"
Output: ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].
因为数据数据的个数不是固定的这题其实就在于处理动态的循环次数
下面给出code
通过一个list 保存每一次的结果然后每次拼接字符,更新这个list 最后一次就是最终结果
public List<String> letterCombinations(String digits) {
List<String> results = new LinkedList<String>();
if (digits.equals(""))
return results;
results.add("");
String[] arr = new String[]{"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
for (char c : digits.toCharArray()){
int digit = Character.getNumericValue(c);
List<String> newCharList = new LinkedList<String>();
for (String str : results){
for (char ch : arr[digit].toCharArray()){
newCharList.add(str + ch);
}
}
results = newCharList;
}
return results;
}