import java.util.*;
public class Solution {
ArrayList<String> res = new ArrayList();
String[] mapping = new String[]{
"","","ABC","DEF","GHI","JKL","MNO","PQRS","TUV","WXYZ"
};
public ArrayList<String> phoneNumber (String num) {
backtrack(num,0,new StringBuilder());
return res;
}
private void backtrack(String num,int start,StringBuilder sb){
if(sb.length() == num.length()){
res.add(sb.toString());
return;
}
char dight = num.charAt(start);
for(char c:mapping[dight-'0'].toCharArray()){
sb.append(c);
backtrack(num,start+1,sb);
sb.deleteCharAt(sb.length()-1);
}
}
}