给一个Z字形的字符串“PAYPALISHIRING”如下
P A H N
A P L S I I G
Y I R
然后你应该横向输出PAHNAPLSIIgYIR
Example 1:
输入: s = "PAYPALISHIRING", numRows = 3
输出: "PAHNAPLSIIGYIR"
Example 2:
输入: s = "PAYPALISHIRING", numRows = 4
输出: "PINALSIGYAHRPI"
Z字形:
P I N
A L S I G
Y A H R
P I
给你一个字符串和行数,横向输出
代码:构造一个StringBuilder数组,每个保存当行的信息,从上到下(纵向),从下到上(斜向)一次保存
public String convert(String s, int numRows) {
if(numRows==1||numRows>=s.length())
return s;
StringBuffer[] sb=new StringBuffer[numRows];
int index=0;
for(int j=0;j
sb[j]=new StringBuffer();
while(index
for(int i=0;i
sb[i].append(s.charAt(index++));
// System.out.println(i+"======="+index);
for(int j=numRows-2;index=1;j--)
sb[j].append(s.charAt(index++));
}
for(int k=1;k
sb[0].append(sb[k]);
return sb[0].toString();
}