陆陆续续在LeetCode上刷了一些题,一直没有记录过,准备集中整理记录一下
class Solution {
public String convert(String s, int nRows) {
if (s == null || nRows == 1)
return s;
int len = s.length();
if (len <= nRows)
return s;
StringBuffer res = new StringBuffer();
int size = 2 * nRows - 2;//每次处理的长度
for (int i = 0; i < nRows; i++) {//每一行的元素
char ch;
for (int j = i; j < len; j += size) {
ch = s.charAt(j);
res.append(ch);
if (i != 0 && i != nRows - 1) {//如果是中间元素单独处理
int tmp = j + size - 2 * i;
if (tmp < len) {
ch = s.charAt(tmp);
res.append(ch);
}
}
}
}
return res.toString();
}
}
网友评论