[LeetCode]#1309. Decrypt String from Alphabet to Integer Mapping

Fatboy Slim
2 min readApr 25, 2020

Environment: Python 3.7

Key technique: chr

Given a string s formed by digits ('0' - '9') 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.

It’s guaranteed 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".

Analysis:

  1. In while loop if i < s length and i+2=”#”, this is double digit.
  2. Else is single digit.
  3. use char to covert to letter as below.

Solution:

class Solution:
def freqAlphabets(self, s):
ans=""
i=0
step=len(s)
while i < step:
if i + 2 < step and s[i + 2] == '#':
ans += chr(int(s[i:i+2]) + 96)
i += 3
else:
ans += chr(int(s[i]) + 96)
i += 1
return ans

Submission:

Reference:

https://coordinate.wang/index.php/archives/2843/

--

--