虽然题目说是Z字形,但是并不需要将样式输出,无所谓其所在位置,只需要知道在哪一行,每行的相对位置就行。
设置StringBuilder数组,每个数组存储一行,定义时需要先定义数组,再定义每行。
class Solution {
public String convert(String s, int numRows) {
StringBuilder[] stringBuilders = new StringBuilder[numRows];
for(int i=0;i<numRows;i++){
stringBuilders[i] = new StringBuilder();//每个都需要定义
}
if(numRows==1) return s;
int n = 0;
int flag = 0;
for(int i=0;i<s.length();i++){
stringBuilders[n].append(s.charAt(i));
if(n==0)flag = 0;
if(n==numRows-1)flag = 1;
if(flag==0)n++;
else n--;
}
String ans = "";
for(int i=0;i<numRows;i++){
ans = ans + stringBuilders[i].toString();
}
return ans;
}
}