0 4 8
1 3 5 7 9
2 6 10
可以發(fā)現(xiàn) 當(dāng)行數(shù)為3的時候 每4個數(shù)組成一個周期
行數(shù)為nRows的時候 周期t= 2*nRows-2
[0,nRows-1) 向下 [nRows,t) 向上
初始化一個 nRows 行的vector 依次將string中的每一個放入,在合并。
class Solution {
public:
string convert(string s, int nRows) {
if(nRows<=1)return s;
int t=2*nRows-2;
string res="";
vector<string>m(nRows,"");
for(int i=0;i<s.length();i++)
{
int a=i%t;
if(a<nRows)m[a]+=s[i];
else m[t-a]+=s[i];
}
for(int i=0;i<m.size();i++)res+=m[i];
return res;
}
};