[Solved] 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.

Table of Contents

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.

Python Solution

class Solution:
    def freqAlphabets(self, s: str) -> str:
        k=''
        i=0
        while i<len(s):
            try:
                if s[i+2]=='#':
                    k+=chr(96+int(s[i:i+2]))
                    i+=2
                else:
                    k+=chr(96+int(s[i]))    
            except:
                k+=chr(96+int(s[i]))
            i+=1
        return (k)

Leave a Reply

Your email address will not be published. Required fields are marked *