c++
class Solution {
public:
string convert(string s, int numRows) {
if (s.empty()) return s;
vector<string> cache(numRows);
for (int i = 0; i < s.size();) {
int idx = 0;
for (idx = 0; idx < numRows && i<s.size(); ++idx,++i) {
cache[idx].push_back(s[i]);
}
idx -= 2;
for (; idx >0 && i<s.size(); --idx, ++i) {
cache[idx].push_back(s[i]);
}
}
string tmp;
for (auto v : cache) {
tmp += v;
}
return tmp;
}
};