Solution to LeetCode ZigZag Conversion problem.
The idea is that that for \(n\) rows, the letters go into rows in this order: \(1, 2, 3, \ldots, n, n-1, n-2, \ldots, 1, 2, \ldots\). Simply make an array, and put each letter into the appropriate slot.
public String convert(String s, int nRows) {
if(nRows == 1) return s;
String[] res = new String[nRows];
for(int i = 0; i < nRows; i++) res[i] = "";
int ctr = 0;
boolean flag = false;
for(char c : s.toCharArray()){
res[ctr] += (c + "");
if(ctr == nRows-1 || ctr == 0) flag = !flag;
if(flag) ctr++;
else ctr--;
}
String result = "";
for(String ss : res) result += ss;
return result;
}