6. ZigZag Conversion

class Solution {
    public String convert(String s, int numRows) {
        if (numRows==1) return s;
        // key step
        // memo[i] represents the string of line i in the ZigZag picture
        StringBuilder[] memo = new StringBuilder[numRows];
        for(int i=0; i<memo.length; i++){
            memo[i] = new StringBuilder();
        }
        int memoIndex = 0;
        int guider=1;
        for(int i=0; i<s.length(); i++){
            memo[memoIndex].append(s.charAt(i));
            if(memoIndex==0){
                guider = 1;
            }
            if (memoIndex == numRows-1){
                guider=-1;
            }
            memoIndex+=guider;
        }
        
        for (int i = 1; i<memo.length; i++){
            memo[0].append(memo[i]);
        }
        
        return memo[0].toString();
    }
}

Last updated