AC : 20ms
按照顺序填充 string
pos指向当前位置,根据numRows 每次跳到改行的相应的竖排的位置,如果不是第一行或最后一行,需要在这里将斜向上的字符添加到string中
class Solution {
public:
string convert(string s, int numRows) {
if (numRows==1) return s;
int len=s.length();
string sret;
for(int i=0,pos=0;i<numRows;){
if(pos>=len){
pos = ++i;
continue;
}
sret += s[pos];
pos += (2*numRows-2);
if((numRows!=i+1 && i!=0))
if((pos-2*(i))>=len)
pos = ++i;
else
sret += s[pos-2*(i)];
}
return sret;
}
};