import
java.util.*;
import
java.lang.*;
import
java.io.*;
class
NumberPadString{
static
Character[][] numberToCharMap;
private
static
List<String> printWords(
int
[] numbers,
int
len,
int
numIndex,
String s)
{
if
(len == numIndex)
{
return
new
ArrayList<>(Collections.singleton(s));
}
List<String> stringList =
new
ArrayList<>();
for
(
int
i =
0
;
i < numberToCharMap[numbers[numIndex]].length; i++)
{
String sCopy =
String.copyValueOf(s.toCharArray());
sCopy = sCopy.concat(
numberToCharMap[numbers[numIndex]][i].toString());
stringList.addAll(printWords(numbers, len,
numIndex +
1
,
sCopy));
}
return
stringList;
}
private
static
void
printWords(
int
[] numbers)
{
generateNumberToCharMap();
List<String> stringList =
printWords(numbers, numbers.length,
0
,
""
);
stringList.stream().forEach(System.out :: println);
}
private
static
void
generateNumberToCharMap()
{
numberToCharMap =
new
Character[
10
][
5
];
numberToCharMap[
0
] =
new
Character[]{
'\0'
};
numberToCharMap[
1
] =
new
Character[]{
'\0'
};
numberToCharMap[
2
] =
new
Character[]{
'a'
,
'b'
,
'c'
};
numberToCharMap[
3
] =
new
Character[]{
'd'
,
'e'
,
'f'
};
numberToCharMap[
4
] =
new
Character[]{
'g'
,
'h'
,
'i'
};
numberToCharMap[
5
] =
new
Character[]{
'j'
,
'k'
,
'l'
};
numberToCharMap[
6
] =
new
Character[]{
'm'
,
'n'
,
'o'
};
numberToCharMap[
7
] =
new
Character[]{
'p'
,
'q'
,
'r'
,
's'
};
numberToCharMap[
8
] =
new
Character[]{
't'
,
'u'
,
'v'
};
numberToCharMap[
9
] =
new
Character[]{
'w'
,
'x'
,
'y'
,
'z'
};
}
public
static
void
main(String[] args)
{
int
number[] = {
2
,
3
,
4
};
printWords(number);
}
}
Comments
Post a Comment