fork download
  1. process.stdin.resume();
  2. process.stdin.setEncoding('utf8');
  3.  
  4. // your code goes here
  5. let str = "1905" ;
  6. let obj = {
  7. 0 : [] ,
  8. 1 : [] ,
  9. 2 : ["a","b","c"] ,
  10. 3 : ["d","e","f"] ,
  11. 4 : ["g","h","i"] ,
  12. 5 : ["j","k","l"] ,
  13. 6 : ["m","n","o"] ,
  14. 7 : ["p","q","r","s"] ,
  15. 8 : ["t","u","v"] ,
  16. 9 : ["w","x","y","z"]
  17. }
  18.  
  19. String.prototype.replaceAt = function(index, replacement) {
  20. return this.substr(0, index) + replacement + this.substr(index + replacement.length);
  21. }
  22.  
  23. function phoneNumberMnemonics(phoneNumber) {
  24. // Write your code here.
  25. let allMnemoics = [] ;
  26. generatingMnemoics(phoneNumber, 0, allMnemoics) ;
  27. return allMnemoics ;
  28. }
  29.  
  30. function generatingMnemoics(phoneNumber, index, allMnemoics) {
  31. if (index === phoneNumber.length) {
  32. allMnemoics.push(phoneNumber) ;
  33. return ;
  34. }
  35. let i = index ;
  36. //for(let i=index; i<phoneNumber.length; i++ ) {
  37. if (obj[parseInt(phoneNumber[i])].length) {
  38. for(let j=0; j<obj[parseInt(phoneNumber[i])].length ; j++ ) {
  39. let curStr = phoneNumber[i] ;
  40. //console.log("First ",phoneNumber, curStr, obj[parseInt(phoneNumber[i])][j]) ;
  41. phoneNumber = phoneNumber.replaceAt(i, obj[parseInt(phoneNumber[i])][j] ) ;
  42. generatingMnemoics(phoneNumber, i+1, allMnemoics) ;
  43. let x = phoneNumber ;
  44. phoneNumber = phoneNumber.replaceAt(i, curStr) ;
  45.  
  46. }
  47. }
  48. else {
  49. generatingMnemoics(phoneNumber, i+1, allMnemoics) ;
  50. }
  51. //}
  52. }
  53.  
  54. console.log(phoneNumberMnemonics(str)) ;
Success #stdin #stdout 0.08s 36356KB
stdin
Standard input is empty
stdout
[ '1w0j',
  '1w0k',
  '1w0l',
  '1x0j',
  '1x0k',
  '1x0l',
  '1y0j',
  '1y0k',
  '1y0l',
  '1z0j',
  '1z0k',
  '1z0l' ]