美文网首页
LeetCode z字形变换

LeetCode z字形变换

作者: 捡糖的Echo | 来源:发表于2018-11-08 20:35 被阅读0次

    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;

        }

    }

    相关文章

      网友评论

          本文标题:LeetCode z字形变换

          本文链接:https://www.haomeiwen.com/subject/ccrgxqtx.html