6. Z字形变换
- 题号:6
- 来源:LeetCode
- 难度:中等
- 标签:
字符串模拟 - 语言:TypeScript
- 解法:1 个
- 作者:lmliheng
- 最近更新:2026-09-27
TypeScript · O(n) 时间 · O(n) 空间 · 更新于 2026-09-27
逐字符写入对应行,到边界反向
typescript
/**
* @difficulty medium
* @tags 字符串,模拟
* @time O(n)
* @space O(n)
* @note 逐字符写入对应行,到边界反向
* @6. Z 字形变换
*/
function convert(s:string, numRows:number) {
if (numRows < 2) return s;
const rows = new Array(numRows).fill('');
let i = 0, flag = -1;
for (let c of s) {
// 将字符添加到当前行
rows[i] += c;
// 到达边界时反转方向
if (i === 0 || i === numRows - 1) {
flag = -flag;
}
// 更新行索引
i += flag;
}
return rows.join('');
};在 GitHub 上查看题目所在目录:lmliheng/algorithm