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;
}
相关推荐
AI+程序员在路上13 小时前
AP6275S蓝牙双接口解析:HCI UART与PCM的分工与协同
linux·c语言·物联网
jingli913 小时前
本地向量库索引把 C 盘塞爆 48.6G:一次 LanceDB 膨胀排查与根治实录
c语言·开发语言
阿钱真强道14 小时前
21 嵌入式操作系统 | JSON 与 json-c:生成与解析
c语言·开发语言·json·json-c
All for pursuit.14 小时前
【二叉树-10】114.二叉树展开为链表
数据结构·c++·算法·leetcode·链表
心中有你021416 小时前
C语言埃氏筛法(素数筛选)
c语言·数据结构·算法
lvwangshu1 天前
P12960 毒药 题解
动态规划·题解·贪心·技巧·性质题·思维好题
晓蛋6 天前
c语言指的是什么意思
c语言·编译器·编程开发·集成开发环境·程序实例
傲世仙尊6 天前
目录即文件-Ext文件系统收尾篇
linux·c语言
牵猫散步的鱼儿7 天前
重载、重写(覆盖)、重定义区别
c语言
phltxy7 天前
C 语言指针:从内存地址到灵活的数据访问
c语言