首页 > 编程语言 > 详细

leetcode 6. ZigZag Conversion [java]

时间:2019-04-06 12:18:47      阅读:118      评论:0      收藏:0      [点我收藏+]

自己写的:

if(numRows == 1)   return s;
        int ll = s.length() / 2 + 1;
        Character tc[] = new Character[numRows* ll];
        int i = 0, j = 0;
        boolean down = true;
        for(int k = 0; k < s.length(); k++){
            tc[i* ll + j] = s.charAt(k);
            if(down){
                i++;
                if(i == numRows){
                    i -= 2;
                    j ++;
                    down = false;
                }
            }else{
                i--;
                j++;
                if(i == -1){
                    i = 1;
                    j --;
                    down = true;
                }
            }
        }
        String res = "";
        for(i=0;i < tc.length; i ++){
            if(tc[i] != null)
                res += tc[i]; 
        }
        return res;

参考于discuss:

char[] c = s.toCharArray();
        int len = c.length;
        StringBuffer[] sb = new StringBuffer[numRows];
        for (int i = 0; i < sb.length; i++) sb[i] = new StringBuffer();
        
        int i = 0;
        while(i < len){
            for (int idx = 0; idx < numRows&&i < len; idx ++)
                sb[idx].append(c[i++]);
            for (int idx = numRows -2; idx >= 1 && i < len; idx --)
                sb[idx].append(c[i++]);
        }
        for(int idx = 1;idx < sb.length; idx ++)
            sb[0].append(sb[idx]);
        return sb[0].toString();

leetcode 6. ZigZag Conversion [java]

原文:https://www.cnblogs.com/whyaza/p/10661098.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!