LeetCode 6. Z 字形變換

https://leetcode-cn.com/problems/zigzag-conversion/java

思路:重點是找interval和step的公式code

public String convert(String s, int numRows) {
    if (s == null) {
        return "";
    }
    int len = s.length();
    if (len <= numRows || len <= 1 || numRows == 1) {
        return s;
    }
    char[] zigZagChars = new char[len];
    int idx = 0;
    int interval = 2 * numRows - 2;
    for (int row = 0; row < numRows; row++) {
        int step = interval - 2 * row;
        for (int col = row; col < len; col += interval) {
            zigZagChars[idx++] = s.charAt(col);
            if (step > 0 && step < interval && col + step < len) {
                zigZagChars[idx++] = s.charAt(col + step);
            }
        }
    }
    return new String(zigZagChars);
}
相關文章
相關標籤/搜索