注意
private final List<String> ans = new ArrayList<>();
private static char[] digits;
private static char[] path;
其中 private final List<String> ans = new ArrayList<>();不能声明为静态变量 否则会报错
注意static的使用 全局变量的生命周期跟随整个类 为类内所有成员访问同一个变量 会有问题
class Solution {
private static final String[] MAPPING = new String[]{"", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};
private final List<String> ans = new ArrayList<>();
private char[] digits;
private char[] path;
public List<String> letterCombinations(String digits) {
int n = digits.length();
if(n == 0) return List.of();
this.digits = digits.toCharArray();
path = new char[n];
dfs(0);
return ans;
}
public void dfs(int i){
if(i == digits.length){
ans.add(new String(path));
return;
}
for(char c : MAPPING[digits[i] - '0'].toCharArray()){
path[i] = c;
dfs(i + 1);
}
}
}