class Solution {
public:
string convert(string s, int nRows) {
string ret = "";
if (nRows <= 1) {
return s;
}
int n = s.length();
ret.resize(n);
int intervals[2];
int itr = 0;
for (int i = 0; i < nRows; ++i) {
if (i == 0 || i == nRows - 1) {
intervals[0] = intervals[1] = 2 * (nRows - 1);
} else {
intervals[0] = 2 * (nRows - 1 - i);
intervals[1] = 2 * i;
}
int j = i, k = 0;
while (j < n) {
ret[itr++] = s[j];
j += intervals[k];
k = 1 - k;
}
}
return ret;
}
};