LeetCode //C - 1309. Decrypt String from Alphabet to Integer Mapping

1309. Decrypt String from Alphabet to Integer Mapping

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.

From: LeetCode

Link: 1309. Decrypt String from Alphabet to Integer Mapping


Solution:

Ideas:

Scan from left to right; when the character two positions ahead is '#', decode two digits, otherwise decode one digit.

Code:
c 复制代码
#include <stdlib.h>
#include <string.h>

char* freqAlphabets(char* s) {
    int n = strlen(s);
    char* result = (char*)malloc((n + 1) * sizeof(char));
    int i = 0;
    int index = 0;

    while (i < n) {
        int value;

        if (i + 2 < n && s[i + 2] == '#') {
            value = (s[i] - '0') * 10 + (s[i + 1] - '0');
            i += 3;
        } else {
            value = s[i] - '0';
            i++;
        }

        result[index++] = 'a' + value - 1;
    }

    result[index] = '\0';
    return result;
}
相关推荐
潇湘秦1 小时前
SQL Server 2016+ 整数类型元数据扩宽(秒级变更)完整说明
数据库·算法
爱聊灵光的维C2 小时前
C语言初阶:关于函数设计的详细讲解和注意事项
c语言·开发语言·青少年编程·蓝桥杯·学习方法
文丑颜不良啊2 小时前
LeetCode1281~1300题目解析
java·leetcode
Figo_Cheung3 小时前
Figo基于结构空间算法假设(SSAH)的生成式大模型优化范式与工程实现边界研究——提出适应AGI架构演化的自适应拓扑感知表征机制
算法·架构·agi
wuminyu3 小时前
JVM规范学习总结:class执行性能差异
java·linux·c语言·jvm·c++
旖旎夜光3 小时前
LCR 170:交易逆序对的总数(归并排序) —— 题解
c++·学习·算法·leetcode·排序算法
C++ 老炮儿的技术栈3 小时前
Linux 动态库踩坑:明明重新编译了 .so,调用函数返回值却一直不变(libfjrobot.so 版本号异常排查实录)
linux·c语言·网络·c++·visual studio
微尘hjx11 小时前
【ByteTrack 04】多轨迹算法ByteTrack改进点
算法·yolo·目标检测·目标跟踪·bytetrack·ultralytics·车跟踪
小向是个Der12 小时前
嵌入式进阶——MCU上电后的动作
c语言·单片机·mcu·学习·链接脚本