题目
分析
这题我采用的思路是用二维数组按照“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=