class Solution {
public:
string convert(string s, int numRows)
{
if(numRows==1)
return s;
int step=2*numRows-2;
int n=s.size();
string ret="";
for(int i=0;i<n;i+=step)
ret+=s[i];
for(int i=1;i<numRows-1;i++)
{
for(int j=i;j<n;j+=step)
{
ret+=s[j];
if(j+step-2*i<n)
{
ret+=s[j+step-2*i];
}
}
}
for(int i=numRows-1;i<n;i+=step)
ret+=s[i];
return ret;
}
};
public:
string convert(string s, int numRows)
{
if(numRows==1)
return s;
int step=2*numRows-2;
int n=s.size();
string ret="";
for(int i=0;i<n;i+=step)
ret+=s[i];
for(int i=1;i<numRows-1;i++)
{
for(int j=i;j<n;j+=step)
{
ret+=s[j];
if(j+step-2*i<n)
{
ret+=s[j+step-2*i];
}
}
}
for(int i=numRows-1;i<n;i+=step)
ret+=s[i];
return ret;
}
};