C语言 | Leetcode C语言题解之第6题Z字形变换

题目:

题解:

cpp 复制代码
char * convert(char * s, int numRows){
    int n = strlen(s), r = numRows;
    if (r == 1 || r >= n) {
        return s;
    }
    int t = r * 2 - 2;
    char * ans = (char *)malloc(sizeof(char) * (n + 1));
    int pos = 0;
    for (int i = 0; i < r; ++i) { // 枚举矩阵的行
        for (int j = 0; j + i < n; j += t) { // 枚举每个周期的起始下标
            ans[pos++] = s[j + i]; // 当前周期的第一个字符
            if (0 < i && i < r - 1 && j + t - i < n) {
                ans[pos++] = s[j + t - i]; // 当前周期的第二个字符
            }
        }
    }
    ans[pos] = '\0';
    return ans;
}
相关推荐
aaaameliaaa9 小时前
字符函数和字符串函数
c语言·笔记·算法
夜月yeyue9 小时前
AUTOSAR CP 从上电到 Runnable
c语言·网络·tcp/ip·车载系统
白白白小纯11 小时前
算法篇—反转链表
c语言·数据结构·算法·leetcode
小羊先生car11 小时前
RTOS-F429-HAL-绝对延时和相对延时(2026/7/31)
c语言·rtos
圣保罗的大教堂13 小时前
leetcode 3517. 最小回文排列 I 中等
leetcode
caishenzhibiao15 小时前
期货先行者主图 同花顺期货通指标
java·c语言·c#
alphaTao16 小时前
LeetCode 每日一题 2026/7/27-2026/8/2
python·算法·leetcode
NoteStream18 小时前
【c语言基础】C语言常见概念
c语言·开发语言·编辑器
caishenzhibiao18 小时前
先行者副图 同花顺期货通指标
java·c语言·c#
回眸不遇18 小时前
将 Docker虚拟磁盘文件ext.vhdx迁移出C盘 ,更换到D盘
c语言·docker·容器