LeetCode--6. ZigZag Conversion--java

陆陆续续在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();
    }
}

你可能感兴趣的:(LeetCode--6. ZigZag Conversion--java)