我胡汉三又回来了,这次我不会再离开了
LeetCode官网:https://leetcode.com/
我是直接用GitHub授权登录的。
问题
给定一个包含包含数字的字符串2-9,返回数字可能表示的所有可能的字母组合。
数字到字母的映射(就像在电话按钮上一样)在下面给出。请注意,1不映射到任何字母。
举例
Input: "23"
Output: ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].
注意
虽然上面的答案是按字典顺序排列的,但您的答案可以按您想要的任何顺序排列。
解法
class Solution {
public List<String> letterCombinations(String digits) {
LinkedList<String> ans = new LinkedList<String>();
if(digits.isEmpty()) return ans;
String[] mapping = new String[] {"0", "1", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};
ans.add("");
while(ans.peek().length()!=digits.length()){
String remove = ans.remove();
String map = mapping[digits.charAt(remove.length())-'0'];
for(char c: map.toCharArray()){
ans.addLast(remove+c);
}
}
return ans;
}
}