Write a program to decrypt string from alphabet to integer mapping
The problem:
You are given a string s formed by digits and ‘#’. We want to map s to English lowercase characters as follows:
- Characters (‘a’ to ‘i’) are represented by (‘1’ to ‘9’) respectively.
- Characters (‘j’ to ‘z’) are represented by (’10#’ to ’26#’) respectively.
Return the string formed after mapping.
The test cases are generated so that a unique mapping will always exist.
Example #1
Input: s = "10#11#12" Output: "jkab" Explanation: "j" -> "10#" , "k" -> "11#" , "a" -> "1" , "b" -> "2".
Example #1
Input: s = "1326#" Output: "acz"
The solution:
const getMappedString = (str) => { let numMap = {}, output = ''; [...Array(26)].forEach((x,i) => { numMap[i+1] = String.fromCharCode(i + 97) }); for(let i = str.length - 1; i >= 0; i--) { if(str[i] === '#') { output = numMap[str[i - 2] + str[i - 1]] + output; i -= 2; } else { output = numMap[str[i]] + output; } } return output; } const str = "10#11#12"; getMappedString(str);