题目

分析
这题我采用的思路是用二维数组按照“Z”字形保存排布结果,再用水平方向遍历的方式去读取非0的部分,生成新的字符串。
基本步骤如下:
1、处理特殊情况,即空字符串和行数为1的字符串。非特殊情况下就生成二维数组,下面介绍二维数组的行列坐标的计算方法。行数即numRows值。列数的部分可以拆分为几步,先求出重复部分的重复次数,(s.length()/(2numRows-2))(numRows-1),我以“向下,右上”为最小重复单元,如例一的“LEET”部分;residue部分是剩余部分,当剩余部分小于numRows时,占一列,若大于等于numRows,则由s.length()%(2*numRows-2)/numRows计算得到。
char[][] str;
if(numRows==1){
if(s.length()==0){
return "";
}else{
return s;
}
}else{
int residue=0;
if(s.length()%(2*numRows-2)<numRows){
residue=1

该博客讨论了LeetCode的6号问题——Z字形变换。博主通过使用二维数组模拟Z字形排列,然后水平遍历获取变换后的字符串。在处理过程中,博主特别考虑了空字符串和行数为1的情况,并详细介绍了计算二维数组行列坐标的步骤,包括重复部分的计算和剩余部分的处理。最后,博主解释了如何按行水平读取非零元素来构建最终结果。
最低0.47元/天 解锁文章
774

被折叠的 条评论
为什么被折叠?



