不怎么需要动脑子的一道题,题目很简单,但是要注意边界条件。 根据zigzag点的分布特点可以得到每一行点坐标的递推公式,循环即可。
public class Solution {
public String convert(String s, int nRows) {
String res = "";
if( nRows == 1 )
{
return s;
}
else
{
for( int i=0;i<nRows;i++ )
{
if( i==0 || i == nRows-1 )
{
int k = i;
while( k<s.length() )
{
res += s.charAt(k);
k += 2*nRows-2;
}
}
else
{
int k = i;
int hl = 2*nRows-2*i-2;
int hr = 2*i;
while( k<s.length() )
{
res += s.charAt(k);
k += hl;
if( k >= s.length() )
{
break;
}
res += s.charAt(k);
k += hr;
}
}
}
}
return res;
}
}