class Solution {
public:
string convert(string s, int nRows) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if (nRows == 1) return s;
vector<vector<char> > v(nRows, vector<char>());
int i = 0;
int d = 0;
for (int j = 0; j < s.size(); j++) {
v[i].push_back(s[j]);
if (d == 0) {
if (i + 1 == nRows) {
i--;
d = 1;
} else {
i++;
}
} else {
if (i == 0) {
i++;
d = 0;
} else {
i--;
}
}
}
string ret = "";
for (int j = 0; j < nRows; j++) {
for (int k = 0; k < v[j].size(); k++)
ret += v[j][k];
}
return ret;
}
};
Small Case: 4ms
Large Case: 184ms
Time: O(n)
Space: O(n)