6.Z字形变换

我的解法

第一反应是矩阵,不过感觉内存消耗太大了。
然后想到用切片,步长为2*numRows-2,然后第1个字符串和第numRows个字符串是单独的,其余字符串按照v型对称的关系两两交替合并,最后拼接成结果字符串。

官方解法

方法一就是二维矩阵。在此基础上,可以通过压缩矩阵来降低空间复杂度,把向矩阵某行填入字符转化为向该行对应的列表末尾追加字符。
方法三类似我的解法,不过不是切片,而是寻找下标关系。步长为step=2numRows-2,所以对矩阵的第一行,字符下标为0+stepk,第numRows行,下标为numRows-1+stepk。对中间行(设行下标为n),前一个字符为n+stepk,后一个字符为step-n+step*k。(题解里用模运算描述)最后枚举所有周期的起始下标,就可以按顺序生成结果字符串。

知识点

posted @ 2025-02-14 13:16  知白0212  阅读(4)  评论(0)    收藏  举报