Facebook Interview Question
by Vikram Deshmukh
JavaScript
/*
mapping = {
'1': ['A', 'B', 'C'],
'2': ['D', 'E', 'F'],
..
'0': ['X', 'Y', 'Z']
}
Input String = '12'
Output String = ['AD', 'AE', 'AF', 'BD', 'BE', 'BF', 'CD', 'CE', 'CF']
*/
var map = {
'1': ['A', 'B', 'C'],
'2': ['D', 'E', 'F'],
'0': ['X', 'Y', 'Z']
};
function getCombinations(N) {
var arr = N.split("");
var output = [];
while(arr.length) {
output = generate(output, map[arr.shift()])
}
return output;
}
function generate(current, map) {
if(!current.length) return map;
var output = [];
for(var i = 0; i < current.length; i++) {
for(var j = 0; j < map.length; j++) {
output.push(current[i]+map[j]);
}
}
return output;
}
console.log(getCombinations("0"));
console.log(getCombinations("12"));
console.log(getCombinations("012"));