算法1
(暴力枚举) $O(n)$
是一道找规律的题目, yxc 讲得很好了,不过觉得这个看起来简洁一点。
时间复杂度分析:o(n)
C++ 代码
class Solution {
public:
string convert(string s, int numRows) {
if (numRows <= 1 || numRows >= s.size()) {
return s;
}
int n = s.size();
int step = 2 * (numRows - 1);
string res = "";
for (int i = 0; i < numRows; i++) {
for (int j = i; j < s.size(); j += step) {
res.push_back(s[j]);
int step2 = i ? step - 2 * i : 0;
if (step2 && j + step2 < n) {
res.push_back(s[j + step2]);
}
}
}
return res;
}
};
赞!