Z字形变换
题目链接:https://leetcode-cn.com/problems/zigzag-conversion/
思路:纯找规律,本质上每一行的字母在原字符串中的序号取余都会呈现一定的pattern。
参考代码:
class Solution {
public:
string convert(string s, int numRows) {
if (numRows < 1) {
return "";
}
string res;
int loop = numRows * 2 - 2;
int gap = loop - 2;
for (int i = 0; i < s.size(); i += loop) {
res += s[i];
}
for (int i = 1; i < numRows - 1; ++i) {
for (int j = i; j < s.size(); j += loop) {
res += s[j];
res += s[j + gap];
}
gap -= 2;
}
for (int i = numRows - 1; i < s.size(); i += loop) {
res += s[i];
}
return res;
}
};