class Solution {
public List<String> letterCombinations(String digits) {
List<String> ll = new ArrayList<>();
List<String> ll1 = new ArrayList<>();
if(digits.equals("")){
return ll;
}
String[] strings = digits.split("");
for(int i=0;i<strings.length;i++) {
int num = Integer.parseInt(strings[i])-2;
if((i%2)==0) {
if(i==0) {
if(num<5) {
ll.add(String.valueOf((char)(97+num*3)));
ll.add(String.valueOf((char)(97+num*3+1)));
ll.add(String.valueOf((char)(97+num*3+2)));
}else {
if(num==5) {
ll.add("p");
ll.add("q");
ll.add("r");
ll.add("s");
}else if(num==6){
ll.add("t");
ll.add("u");
ll.add("v");
}else {
ll.add("w");
ll.add("x");
ll.add("y");
ll.add("z");
}
}
}else {
for(int q=0;q<ll1.size();q++) {
if(num<5) {
ll.add(ll1.get(q)+(char)(97+num*3));
ll.add(ll1.get(q)+(char)(97+num*3+1));
ll.add(ll1.get(q)+(char)(97+num*3+2));
}else {
if(num==5) {
ll.add(ll1.get(q)+"p");
ll.add(ll1.get(q)+"q");
ll.add(ll1.get(q)+"r");
ll.add(ll1.get(q)+"s");
}else if(num==6){
ll.add(ll1.get(q)+"t");
ll.add(ll1.get(q)+"u");
ll.add(ll1.get(q)+"v");
}else {
ll.add(ll1.get(q)+"w");
ll.add(ll1.get(q)+"x");
ll.add(ll1.get(q)+"y");
ll.add(ll1.get(q)+"z");
}
}
}
}
ll1.clear();
}else {
for(int q=0;q<ll.size();q++) {
if(num<5) {
ll1.add(ll.get(q)+(char)(97+num*3));
ll1.add(ll.get(q)+(char)(97+num*3+1));
ll1.add(ll.get(q)+(char)(97+num*3+2));
}else {
if(num==5) {
ll1.add(ll.get(q)+"p");
ll1.add(ll.get(q)+"q");
ll1.add(ll.get(q)+"r");
ll1.add(ll.get(q)+"s");
}else if(num==6){
ll1.add(ll.get(q)+"t");
ll1.add(ll.get(q)+"u");
ll1.add(ll.get(q)+"v");
}else {
ll1.add(ll.get(q)+"w");
ll1.add(ll.get(q)+"x");
ll1.add(ll.get(q)+"y");
ll1.add(ll.get(q)+"z");
}
}
}
ll.clear();
}
}
if(ll.size()==0) {
return ll1;
}
return ll;
}
}