原题链接:6. Z 字形变换
solution:
直接模拟,保存Z字形变换数组,在按顺序遍历即可
class Solution {
public:
string convert(string s, int numRows) {
if(numRows == 1) return s;
int n = s.length();
string res; //定义返回值
vector<string> matrix(numRows); //保存Z字形矩阵
int cur = 0;
bool flag = true; //flag标志判断是向下还是向上移动
for(int i = 0;i < n;i++) { //按Z字形变换保存矩阵
matrix[cur].push_back(s[i]);
cur += flag ? 1 : -1;
if(cur == numRows - 1) flag = false;
if(cur == 0) flag = true;
}
for(auto &x : matrix) //存储返回值
for(auto &y : x)
res += y;
return res;
}
};