题目
算法
http://www.cnblogs.com/springfor/p/3889414.html
- 找规律:发现所有行的重复周期都是2nRows-2;对于首行和末行之间的行,还会额外重复一次,重复的这一次距离本周期起始字符距离是:2nRows-2-2*i
代码
class Solution {
public:
string convert(string s, int nRows) {
if (nRows <= 1) return s;
string res = "";
int size = 2 * nRows - 2;
for (int i = 0; i < nRows; ++i) {
for (int j = i; j < s.size(); j += size) {
res += s[j];
int tmp = j + size - 2 * i;
if (i != 0 && i != nRows - 1 && tmp < s.size()) res += s[tmp];
}
}
return res;
}
};