参考题解
时间复杂度: O ( 3 8 ) O(3^8) O(38)
空间复杂度: O ( 3 8 ) O(3^8) O(38)
class Solution {
String[] map = { " ", "*", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz" };//存 数字 和 字符串 的映射关系
List res = new ArrayList<>();
String d;//输入的数字
public List letterCombinations(String digits)
{
d = digits;
if (d == null || d.length() == 0)
return new ArrayList();
dfs("", 0);//从 0 位开始
return res;
}
private void dfs(String s, int u)
{
if (u == d.length())
{
res.add(s);
return;
}
char c = d.charAt(u);
int idx = c - '0';
char[] arr = map[idx].toCharArray();
for (int i = 0; i < arr.length; i++)
dfs(s + arr[i], u + 1);
}
}