1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| class Solution { public String convert(String s, int numRows) { if (numRows < 2) { return s; }
StringBuilder[] lines = new StringBuilder[numRows]; for (int i = 0; i < numRows; i++) { lines[i] = new StringBuilder(); }
int rowIndex = 0, direction = -1;
for (int i = 0; i < s.length(); i++) { lines[rowIndex].append(s.charAt(i));
if (rowIndex == 0 || rowIndex == numRows - 1) { direction = -direction; } rowIndex += direction; }
StringBuilder sb = new StringBuilder(); for (StringBuilder line : lines) { sb.append(line); } return sb.toString(); } }
|