1309. Decrypt String from Alphabet to Integer Mapping

#### QUESTION:

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 2:

``````Input: s = "1326#"
Output: "acz"
``````

Constraints:

``````1 <= s.length <= 1000
s consists of digits and the '#' letter.
s will be a valid string such that mapping is always possible.
``````

#### SOLUTION:

``````class Solution {
var alphabeta:[String] = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n",
"o","p","q","r","s","t","u","v","w","x","y","z"]
var alphabetaRepresent:[String] = ["1","2","3","4","5","6","7","8","9","#01","#11","#21","#31","#41","#51","#61","#71","#81","#91","#02",
"#12","#22","#32","#42","#52","#62"]
func freqAlphabets(_ s: String) -> String {
var text:[Character] = s.reversed()
var index:Int = 0
var result:String = ""
while index < text.count {
var tmp:String = ""
tmp += text[index].description
index += 1
if tmp == "#" {
tmp += text[index].description
tmp += text[index+1].description
index += 2
}
result += alphabeta[alphabetaRepresent.index(of: tmp)!]
}
return String(result.reversed())
}
}
``````