LeetCode z字形变换

2018-11-08  本文已影响0人  捡糖的Echo

LeetCode z字形变换

发现规律,第一行和最后一行,以及中间的普通行分开按等差数列找规律。

第一行和最后一行,每列为满列,相差2*numRows-2;

中间普通列,满列和单列分开算,单列与满列字母相差2*(numRows-1-i),额外加入

class Solution {

    public String convert(String s, int numRows) {

        int len=s.length();

        if(len==0||numRows<=1) return s;

        int zlen=2*numRows-2;

        String result="";

        for(int i=0;i<numRows;i++){

            for(int j=i;j<len;j+=zlen){

                result+=s.charAt(j);

                if(i!=0&&i!=numRows-1&&(j+2*(numRows-1-i))<len){

                    result+=s.charAt(j+2*(numRows-1-i));

                }   

            }

        }

        return result;

    }

}

上一篇下一篇

猜你喜欢

热点阅读