Taro Logo

Decrypt String from Alphabet to Integer Mapping

Easy
Meta logo
Meta
3 views
Topics:
Strings

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


Decoding a String of Digits and Hashes

This problem requires us to decode a string s consisting of digits and '#' characters into a lowercase English string. Digits '1' to '9' map to characters 'a' to 'i', and '10#' to '26#' map to 'j' to 'z'.

Naive Approach

A straightforward approach is to iterate through the string s and check for '#' characters. If a '#' is encountered, we look at the two preceding digits to form a two-digit number. If no '#' is found, we simply convert single digits into the appropriate characters.

Example:

For the input string `s = "10#11#12"