https://leetcode.com/problems/decrypt-string-from-alphabet-to-integer-mapping/ | Easy |
---|
Дана строка s
, представляющая закодированную строку, где:
• Символы от '1'
до '9'
представляют буквы от 'a'
до 'i'
.
• Последовательности от '10#' до '26#' представляют буквы от 'j' до 'z'. Нужно расшифровать строку и вернуть результат.
Input:
s = "10#11#12”Output:
"jkab”Explanation:
"10#" → j, "11#" → k, "12" → a + b
Input:
s = "1326#”Output:
"acz”
fun freqAlphabets(s: String): String {
val result = StringBuilder()
var i = s.length - 1
while (i >= 0) {
if (s[i] == '#') {
val num = (s[i - 2] - '0') * 10 + (s[i - 1] - '0') // Двузначное число
result.append('a' + num - 1)
i -= 3
} else {
val num = s[i] - '0'
result.append('a' + num - 1)
i -= 1
}
}
return result.reverse().toString()
}
O(n), где n — длина строки s
.
O(n), для хранения результата.