1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| class Solution { public String convert(String s, int nRows) { char[] c = s.toCharArray(); int len = c.length; StringBuffer[] sb = new StringBuffer[nRows]; for (int i = 0; i < sb.length; i++) sb[i] = new StringBuffer();
int i = 0; while (i < len) { for (int idx = 0; idx < nRows && i < len; idx++) sb[idx].append(c[i++]); for (int idx = nRows-2; idx >= 1 && i < len; idx--) sb[idx].append(c[i++]); } for (int idx = 1; idx < sb.length; idx++) sb[0].append(sb[idx]); return sb[0].toString(); } }
|