Question6–ZigZag Conversion
题目描述:给出一个string,按照“之”字形写下去,行数也给出,为n。要求将该之字形string按行读出。
算法:
遍历一遍原始string,用一个int数来标记行数。每当到第0行时,行数就每次加1;每当到最后一行时,行数就每次减1。用一个大小为n的string数组来存储每行的字符串。
Code
string convert(string s, int numRows) {
if(numRows==1) return s;
string str[numRows];
int r=0, step=1;
for(int i=0; i<s.size(); i++){
str[r].push_back(s[i]);
if(r==0) step=1;
else if(r==numRows-1) step=-1;
r+=step;
}
s.clear();
for(int i=0; i<numRows; i++) s+=str[i];
return s;
}
时间复杂度
O(n)