6. Z 字形变换 - 力扣(LeetCode) (leetcode-cn.com)
这解法太绝了,用一个vector<string>rows记录结果的每一行,从头扫描s,当前位置为0或numRows-1改变方向,绝!
class Solution {
public:
string convert(string s, int numRows) {
if(numRows==1) return s;
int cur=0;
bool flag=false;
string res;
// int minrow=numRows<s.length()?numRows:s.length();
vector<string>rows(numRows);
for(int i=0;i<s.length();i++){
rows[cur]+=s[i];
cout<<rows[cur]<<endl;
if(cur==0||cur==numRows-1){
flag=!flag;
}
cur+=flag?1:-1;
// cout<<cur<<endl;
}
for(int i=0;i<rows.size();i++){
//cout<<rows[i]<<endl;
res+=rows[i];
}
return res;
}
};