不怎么需要动脑子的一道题,题目很简单,但是要注意边界条件。 根据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;
}
}
本文介绍了一种将字符串以Zigzag形式进行转换的方法,并提供了详细的Java实现代码。通过循环利用递推公式来确定每行字符的位置,适用于不同行数的情况。
344

被折叠的 条评论
为什么被折叠?



