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;
}
相关推荐
json{shen:"jing"}12 小时前
字符串中的第一个唯一字符
算法·leetcode·职场和发展
java干货12 小时前
如何让 iPhone 用上 Type-C 充电器?适配器模式详解
c语言·iphone·适配器模式
追随者永远是胜利者12 小时前
(LeetCode-Hot100)15. 三数之和
java·算法·leetcode·职场和发展·go
代码改善世界13 小时前
C语言项目实战:学生成绩管理系统(支持登录注册、随机考试、分数区间统计)
c语言·网络·课程设计
程序员酥皮蛋13 小时前
hot 100 第二十七题 27.合并两个有序链表
数据结构·leetcode·链表
im_AMBER14 小时前
Leetcode 121 翻转二叉树 | 二叉树中的最大路径和
数据结构·学习·算法·leetcode
『往事』&白驹过隙;15 小时前
浅谈PC开发中的设计模式搬迁到ARM开发
linux·c语言·arm开发·设计模式·iot
Kurbaneli16 小时前
C语言过时了吗?2025年仍不可替代
c语言·开发语言
智者知已应修善业17 小时前
【PAT乙级真题解惑1012数字分类】2025-3-29
c语言·c++·经验分享·笔记·算法
v_for_van18 小时前
力扣刷题记录6(无算法背景,纯C语言)
c语言·算法·leetcode