public String convert(String s, int nRows) {
if (nRows == 1)
return s;
StringBuffer[] sbs = new StringBuffer[nRows];
for (int i = 0; i < nRows; i++) {
sbs[i] = new StringBuffer();
}
int len = s.length();
int cursor = 0;
int cursorMax = nRows - 1;
boolean inc = true;
for (int i = 0; i < len; i++) {
sbs[cursor].append(s.charAt(i));
if (inc)
cursor++;
else
cursor--;
if (cursor == 0) {
inc = true;
} else if (cursor == cursorMax) {
inc = false;
}
}
StringBuffer sb = new StringBuffer();
for (int i = 0; i < nRows; i++) {
sb.append(sbs[i]);
}
return sb.toString();
}
2013년 2월 7일 목요일
ZigZag Conversion
피드 구독하기:
댓글 (Atom)
댓글 없음:
댓글 쓰기