ZigZag Conversion_6

https://leetcode.com/problems/zigzag-conversion/

image.png

(图片来源https://leetcode.com/problems/zigzag-conversion/

日期 是否一次通过 comment
2020-02-13

insights:

  1. 周期性
  2. 有时候不好用求余操作时,可以考虑使用同周期/下一周期加减法

image.png
  1. 明确周期
  2. i 在行方向游走(同周期操作)
  3. j 在列方向游走(跨周期跳跃)
public String convert(String s, int numRows) {
        if(numRows <= 1) {
            return s;
        }
        
        int cycle = 2 * numRows - 2;
        
        StringBuilder res = new StringBuilder();
        for(int i=0; i<numRows; i++) {
            for(int j=0; j+i<s.length(); j+=cycle) {
                res.append(s.charAt(i+j));
                if(i!=0 && i!=numRows-1 && j+cycle-i<s.length()) {
                    res.append(s.charAt(j+cycle-i));
                }
            }
        }
        
        return res.toString();
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容