Decrypt String from Alphabet to Integer Mapping

Problem Description

You are given a string s formed by digits and '#'. We want to map s to English lowercase characters as follows:

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:

Solution (Go)

func freqAlphabets(s string) string {
	var out, ns string
	for i := 0; i < len(s); {
		if i+2 < len(s) && s[i+2] == '#' {
			ns = s[i : i+2]
			i += 3
		} else {
			ns = s[i : i+1]
			i += 1
		}
		n, _ := strconv.Atoi(ns)
		out += string(rune(n - 1 + 'a'))
	}
	return out
}