process.stdin.resume();
process.stdin.setEncoding('utf8');
// your code goes here
let str = "1905" ;
let obj = {
0 : [] ,
1 : [] ,
2 : ["a","b","c"] ,
3 : ["d","e","f"] ,
4 : ["g","h","i"] ,
5 : ["j","k","l"] ,
6 : ["m","n","o"] ,
7 : ["p","q","r","s"] ,
8 : ["t","u","v"] ,
9 : ["w","x","y","z"]
}
String.prototype.replaceAt = function(index, replacement) {
return this.substr(0, index) + replacement + this.substr(index + replacement.length);
}
function phoneNumberMnemonics(phoneNumber) {
// Write your code here.
let allMnemoics = [] ;
generatingMnemoics(phoneNumber, 0, allMnemoics) ;
return allMnemoics ;
}
function generatingMnemoics(phoneNumber, index, allMnemoics) {
if (index === phoneNumber.length) {
allMnemoics.push(phoneNumber) ;
return ;
}
let i = index ;
//for(let i=index; i<phoneNumber.length; i++ ) {
if (obj[parseInt(phoneNumber[i])].length) {
for(let j=0; j<obj[parseInt(phoneNumber[i])].length ; j++ ) {
let curStr = phoneNumber[i] ;
//console.log("First ",phoneNumber, curStr, obj[parseInt(phoneNumber[i])][j]) ;
phoneNumber = phoneNumber.replaceAt(i, obj[parseInt(phoneNumber[i])][j] ) ;
generatingMnemoics(phoneNumber, i+1, allMnemoics) ;
let x = phoneNumber ;
phoneNumber = phoneNumber.replaceAt(i, curStr) ;
}
}
else {
generatingMnemoics(phoneNumber, i+1, allMnemoics) ;
}
//}
}
console.log(phoneNumberMnemonics(str)) ;
cHJvY2Vzcy5zdGRpbi5yZXN1bWUoKTsKcHJvY2Vzcy5zdGRpbi5zZXRFbmNvZGluZygndXRmOCcpOwoKLy8geW91ciBjb2RlIGdvZXMgaGVyZQpsZXQgc3RyID0gIjE5MDUiIDsKbGV0IG9iaiA9IHsKCTAgOiBbXSAsCgkxIDogW10gLAoJMiA6IFsiYSIsImIiLCJjIl0gLAoJMyA6IFsiZCIsImUiLCJmIl0gLAoJNCA6IFsiZyIsImgiLCJpIl0gLAoJNSA6IFsiaiIsImsiLCJsIl0gLAoJNiA6IFsibSIsIm4iLCJvIl0gLAoJNyA6IFsicCIsInEiLCJyIiwicyJdICwKCTggOiBbInQiLCJ1IiwidiJdICwKCTkgOiBbInciLCJ4IiwieSIsInoiXQp9CgpTdHJpbmcucHJvdG90eXBlLnJlcGxhY2VBdCA9IGZ1bmN0aW9uKGluZGV4LCByZXBsYWNlbWVudCkgewogICAgcmV0dXJuIHRoaXMuc3Vic3RyKDAsIGluZGV4KSArIHJlcGxhY2VtZW50ICsgdGhpcy5zdWJzdHIoaW5kZXggKyByZXBsYWNlbWVudC5sZW5ndGgpOwp9CgpmdW5jdGlvbiBwaG9uZU51bWJlck1uZW1vbmljcyhwaG9uZU51bWJlcikgewogIC8vIFdyaXRlIHlvdXIgY29kZSBoZXJlLgogIGxldCBhbGxNbmVtb2ljcyA9IFtdIDsKICBnZW5lcmF0aW5nTW5lbW9pY3MocGhvbmVOdW1iZXIsIDAsIGFsbE1uZW1vaWNzKSA7CiAgcmV0dXJuIGFsbE1uZW1vaWNzIDsKfQoKZnVuY3Rpb24gZ2VuZXJhdGluZ01uZW1vaWNzKHBob25lTnVtYmVyLCBpbmRleCwgYWxsTW5lbW9pY3MpIHsKCWlmIChpbmRleCA9PT0gcGhvbmVOdW1iZXIubGVuZ3RoKSB7CgkJYWxsTW5lbW9pY3MucHVzaChwaG9uZU51bWJlcikgOwoJCXJldHVybiA7Cgl9CglsZXQgaSA9IGluZGV4IDsKCS8vZm9yKGxldCBpPWluZGV4OyBpPHBob25lTnVtYmVyLmxlbmd0aDsgaSsrICkgewoJaWYgKG9ialtwYXJzZUludChwaG9uZU51bWJlcltpXSldLmxlbmd0aCkgewoJCWZvcihsZXQgaj0wOyBqPG9ialtwYXJzZUludChwaG9uZU51bWJlcltpXSldLmxlbmd0aCA7IGorKyApIHsKCQkJbGV0IGN1clN0ciA9IHBob25lTnVtYmVyW2ldIDsKCQkJLy9jb25zb2xlLmxvZygiRmlyc3QgIixwaG9uZU51bWJlciwgY3VyU3RyLCBvYmpbcGFyc2VJbnQocGhvbmVOdW1iZXJbaV0pXVtqXSkgOwoJCQlwaG9uZU51bWJlciA9IHBob25lTnVtYmVyLnJlcGxhY2VBdChpLCBvYmpbcGFyc2VJbnQocGhvbmVOdW1iZXJbaV0pXVtqXSApIDsKCQkJZ2VuZXJhdGluZ01uZW1vaWNzKHBob25lTnVtYmVyLCBpKzEsIGFsbE1uZW1vaWNzKSA7CgkJCWxldCB4ID0gcGhvbmVOdW1iZXIgOwoJCQlwaG9uZU51bWJlciA9IHBob25lTnVtYmVyLnJlcGxhY2VBdChpLCBjdXJTdHIpIDsKCQkJCgkJfQoJfQoJZWxzZSB7CgkJZ2VuZXJhdGluZ01uZW1vaWNzKHBob25lTnVtYmVyLCBpKzEsIGFsbE1uZW1vaWNzKSA7Cgl9CgkvL30KfQoKY29uc29sZS5sb2cocGhvbmVOdW1iZXJNbmVtb25pY3Moc3RyKSkgOw==