leetcode: ZigZag Conversion

来源:互联网 发布:网络短信106免费版 编辑:程序博客网 时间:2024/06/06 02:07
不怎么需要动脑子的一道题,题目很简单,但是要注意边界条件。    根据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;    }}

0 0
原创粉丝点击