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;
}
相关推荐
进击的荆棘几秒前
优选算法——队列+宽搜
数据结构·c++·算法·leetcode·bfs·队列
进击的荆棘11 分钟前
优选算法——栈
数据结构·c++·算法·leetcode·
Dovis(誓平步青云)2 小时前
《QT学习第四篇:常见事件与UDP、TCP、文件系统、(锁、信号量、条件变量》
c语言·开发语言·汇编·qt
_日拱一卒13 小时前
LeetCode:207课程表
java·数据结构·算法·leetcode·职场和发展
.千余15 小时前
【C++】C++类与对象2:C++构造函数、运算符重载与流输入输出全面解析
c语言·开发语言·前端·c++·经验分享
风筝在晴天搁浅16 小时前
美团 LeetCode 692.前K个高频单词
算法·leetcode·职场和发展
z2005093017 小时前
今日算法(回溯子集)(模版题)
数据结构·算法·leetcode
QiLinkOS17 小时前
【用呼吸重构创造价值关系——QiLink生态】
c语言·数据结构·c++·人工智能·单片机·嵌入式硬件·算法
水无痕simon17 小时前
8 判断,分支,循环语句
c语言
朔北之忘 Clancy17 小时前
2026 年 3 月青少年软编等考 C 语言二级真题解析
c语言·开发语言·c++·学习·青少年编程·题解·考级