Decrypt String from Alphabet to Integer Mapping
💻 coding

Decrypt String from Alphabet to Integer Mapping

1 min read 242 words
1 min read
ShareWhatsAppPost on X
  • 1The string is mapped to characters where '1' to '9' represent 'a' to 'i' and '10#' to '26#' represent 'j' to 'z'.
  • 2The provided examples illustrate how different input strings are converted to their respective character outputs.
  • 3The algorithm operates with a time complexity of O(n) and a space complexity of O(1).

AI-generated summary · May not capture all nuances

Key Insight
AskGif

"The string is mapped to characters where '1' to '9' represent 'a' to 'i' and '10#' to '26#' represent 'j' to 'z'."

Decrypt String from Alphabet to Integer Mapping

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".

Example 2:

Input: s = "1326#"

Output: "acz"

Example 3:

Input: s = "25#"

Output: "y"

Example 4:

Input: s = "12345678910#11#12#13#14#15#16#17#18#19#20#21#22#23#24#25#26#"

Output: "abcdefghijklmnopqrstuvwxyz"

Constraints:

1 <= s.length <= 1000

s[i] only contains digits letters ('0'-'9') and '#' letter.

s will be valid string such that mapping is always possible.

Solution:

using System;
using System.Collections.Generic;
using System.Text;

namespace LeetCode.AskGif.Easy.String
{
 class FreqAlphabetsSol
 {
 public void execute()
 {
 var res = FreqAlphabets("10#11#12");
 }
 public string FreqAlphabets(string s)
 {
 string[] alphabet = {"","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 str = new StringBuilder();
 for (int i = 0; i < s.Length; i++)
 {
 if(i+2 < s.Length && s[i+2] == '#')
 {
 str.Append(alphabet[Int32.Parse(s.Substring(i, 2))]);
 i += 2;
 }
 else
 {
 str.Append(alphabet[Int32.Parse(s.Substring(i, 1))]);
 }
 }

 return str.ToString();
 }
 }
}

Time Complexity: O(n) - for traversing the string

Space Complexity: O(1)

Enjoyed this article?

Share it with someone who'd find it useful.

ShareWhatsAppPost on X

AskGif

Published on 3 May 2020 · 1 min read · 242 words

Part of AskGif Blog · coding

You might also like