一、思路
找规律的一道题,打草稿,找规律,实现即可。找出公差,逐行处理,注意细节。
二、代码
class Solution {
public:
string convert(string s, int numRows) {
string res;
if(numRows == 1) return s;
int d = 2*(numRows - 1);
int a[numRows], b[numRows];
for(int i = 0; i < numRows; i ++){
a[i] = i;
b[i] = d - a[i];
}
for(int i = 0; i < numRows; i ++){
if(i == 0 || i == numRows - 1){
while(a[i] < s.size()){
res += s[a[i]];
a[i] += d;
}
} else {
while(b[i] < s.size()){
res += s[a[i]];
res += s[b[i]];
a[i] += d;
b[i] += d;
}
if(a[i] < s.size()) res += s[a[i]];
}
}
return res;
}
};